[FEATURE][processing] Extract nodes algorithm now saves node

index, distance along line and angle at node

Also correctly handles null geometries
This commit is contained in:
Nyall Dawson 2016-08-25 18:16:40 +10:00
parent 986b5313ed
commit 9fa4e776db
11 changed files with 1087 additions and 14 deletions

View File

@ -166,6 +166,8 @@ qgis:extractbylocation: >
qgis:extractnodes: >
This algorithm takes a line or polygon layer and generates a point layer with points representing the nodes in the input lines or polygons. The attributes associated to each point are the same ones associated to the line or polygon that the point belongs to.
Additional fields are added to the nodes indicating the node index (beginning at 0), distance along original geometry and bisector angle of node for original geometry.
qgis:fieldcalculator: >
This algorithm computes a new vector layer with the same features of the input layer, but with an additional attribute. The values of this new attribute are computed from each feature using a mathematical formula, based on te properties and attributes of the feature.

View File

@ -26,10 +26,12 @@ __copyright__ = '(C) 2012, Victor Olaya'
__revision__ = '$Format:%H$'
import os
import math
from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtCore import QVariant
from qgis.core import Qgis, QgsFeature, QgsGeometry, QgsWkbTypes
from qgis.core import QgsFeature, QgsGeometry, QgsWkbTypes, QgsField
from processing.core.GeoAlgorithm import GeoAlgorithm
from processing.core.parameters import ParameterVector
@ -61,25 +63,34 @@ class ExtractNodes(GeoAlgorithm):
layer = dataobjects.getObjectFromUri(
self.getParameterValue(self.INPUT))
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
layer.fields().toList(), QgsWkbTypes.Point, layer.crs())
fields = layer.fields()
fields.append(QgsField('node_index', QVariant.Int))
fields.append(QgsField('distance', QVariant.Double))
fields.append(QgsField('angle', QVariant.Double))
outFeat = QgsFeature()
inGeom = QgsGeometry()
outGeom = QgsGeometry()
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
fields, QgsWkbTypes.Point, layer.crs())
features = vector.features(layer)
total = 100.0 / len(features)
for current, f in enumerate(features):
inGeom = f.geometry()
attrs = f.attributes()
input_geometry = f.geometry()
if not input_geometry:
writer.addFeature(f)
else:
points = vector.extractPoints(input_geometry)
points = vector.extractPoints(inGeom)
outFeat.setAttributes(attrs)
for i in points:
outFeat.setGeometry(outGeom.fromPoint(i))
writer.addFeature(outFeat)
for i, point in enumerate(points):
distance = input_geometry.distanceToVertex(i)
angle = math.degrees(input_geometry.angleAtVertex(i))
attrs = f.attributes()
attrs.append(i)
attrs.append(distance)
attrs.append(angle)
output_feature = QgsFeature()
output_feature.setAttributes(attrs)
output_feature.setGeometry(QgsGeometry.fromPoint(point))
writer.addFeature(output_feature)
progress.setPercentage(int(current * total))

View File

@ -0,0 +1,25 @@
<GMLFeatureClassList>
<GMLFeatureClass>
<Name>extract_nodes_lines</Name>
<ElementPath>extract_nodes_lines</ElementPath>
<GeometryType>1</GeometryType>
<SRSName>EPSG:4326</SRSName>
<DatasetSpecificInfo>
<FeatureCount>17</FeatureCount>
<ExtentXMin>-1.00000</ExtentXMin>
<ExtentXMax>11.00000</ExtentXMax>
<ExtentYMin>-3.00000</ExtentYMin>
<ExtentYMax>5.00000</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>distance</Name>
<ElementPath>distance</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>angle</Name>
<ElementPath>angle</ElementPath>
<Type>Real</Type>
</PropertyDefn>
</GMLFeatureClass>
</GMLFeatureClassList>

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=""
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1</gml:X><gml:Y>-3</gml:Y></gml:coord>
<gml:coord><gml:X>11</gml:X><gml:Y>5</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>22.5</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>11,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>6.82842712474619</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>5.65685424949238</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.6">
</ogr:extract_nodes_lines>
</gml:featureMember>
</ogr:FeatureCollection>

View File

@ -0,0 +1,25 @@
<GMLFeatureClassList>
<GMLFeatureClass>
<Name>extract_nodes_multilines</Name>
<ElementPath>extract_nodes_multilines</ElementPath>
<GeometryType>1</GeometryType>
<SRSName>EPSG:4326</SRSName>
<DatasetSpecificInfo>
<FeatureCount>15</FeatureCount>
<ExtentXMin>-1.00000</ExtentXMin>
<ExtentXMax>5.58042</ExtentXMax>
<ExtentYMin>-1.00000</ExtentYMin>
<ExtentYMax>4.11977</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>distance</Name>
<ElementPath>distance</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>angle</Name>
<ElementPath>angle</ElementPath>
<Type>Real</Type>
</PropertyDefn>
</GMLFeatureClass>
</GMLFeatureClassList>

View File

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=""
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1</gml:X><gml:Y>-1</gml:Y></gml:coord>
<gml:coord><gml:X>5.58042226487524</gml:X><gml:Y>4.119769673704415</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.024184261036468,2.414779270633399</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>3.41498595862145</ogr:distance>
<ogr:angle>180.979319654339</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>4.82997191724289</ogr:distance>
<ogr:angle>180.979319654339</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.3">
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2.944337811900192,4.04721689059501</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>5.04869513927144</ogr:distance>
<ogr:angle>88.3476953223487</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.459500959692898,4.119769673704415</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>7.56490450384177</ogr:distance>
<ogr:angle>88.3476953223487</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>6</ogr:node_index>
<ogr:distance>10.2673162217113</ogr:distance>
<ogr:angle>91.1803544802029</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.58042226487524,2.946833013435702</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>7</ogr:node_index>
<ogr:distance>12.8482861544157</ogr:distance>
<ogr:angle>91.1803544802029</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
</ogr:FeatureCollection>

View File

@ -0,0 +1,41 @@
<GMLFeatureClassList>
<GMLFeatureClass>
<Name>extract_nodes_multipolys</Name>
<ElementPath>extract_nodes_multipolys</ElementPath>
<GeometryType>1</GeometryType>
<SRSName>EPSG:4326</SRSName>
<DatasetSpecificInfo>
<FeatureCount>25</FeatureCount>
<ExtentXMin>0.00000</ExtentXMin>
<ExtentXMax>9.00000</ExtentXMax>
<ExtentYMin>-1.00000</ExtentYMin>
<ExtentYMax>6.00000</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>Bname</Name>
<ElementPath>Bname</ElementPath>
<Type>String</Type>
<Width>4</Width>
</PropertyDefn>
<PropertyDefn>
<Name>Bintval</Name>
<ElementPath>Bintval</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>Bfloatval</Name>
<ElementPath>Bfloatval</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>distance</Name>
<ElementPath>distance</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>angle</Name>
<ElementPath>angle</ElementPath>
<Type>Real</Type>
</PropertyDefn>
</GMLFeatureClass>
</GMLFeatureClassList>

View File

@ -0,0 +1,249 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=""
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>0</gml:X><gml:Y>-1</gml:Y></gml:coord>
<gml:coord><gml:X>9</gml:X><gml:Y>6</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>1</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>6</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>6</ogr:node_index>
<ogr:distance>8</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>1</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>5</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>6</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>10</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,6</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>17</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>6</ogr:node_index>
<ogr:distance>18</ogr:distance>
<ogr:angle>180</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,4</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>7</ogr:node_index>
<ogr:distance>19</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,4</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>8</ogr:node_index>
<ogr:distance>20</ogr:distance>
<ogr:angle>67.5</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>9</ogr:node_index>
<ogr:distance>21.4142135623731</ogr:distance>
<ogr:angle>22.5</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,6</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>10</ogr:node_index>
<ogr:distance>22.4142135623731</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,6</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>11</ogr:node_index>
<ogr:distance>24.4142135623731</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>1</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multipolys fid="multipolys.3">
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>3</ogr:Bintval>
<ogr:Bfloatval>0</ogr:Bfloatval>
</ogr:extract_nodes_multipolys>
</gml:featureMember>
</ogr:FeatureCollection>

View File

@ -0,0 +1,41 @@
<GMLFeatureClassList>
<GMLFeatureClass>
<Name>extract_nodes_polys</Name>
<ElementPath>extract_nodes_polys</ElementPath>
<GeometryType>1</GeometryType>
<SRSName>EPSG:4326</SRSName>
<DatasetSpecificInfo>
<FeatureCount>33</FeatureCount>
<ExtentXMin>-1.00000</ExtentXMin>
<ExtentXMax>10.00000</ExtentXMax>
<ExtentYMin>-3.00000</ExtentYMin>
<ExtentYMax>6.00000</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>name</Name>
<ElementPath>name</ElementPath>
<Type>String</Type>
<Width>5</Width>
</PropertyDefn>
<PropertyDefn>
<Name>intval</Name>
<ElementPath>intval</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>floatval</Name>
<ElementPath>floatval</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>distance</Name>
<ElementPath>distance</ElementPath>
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>angle</Name>
<ElementPath>angle</ElementPath>
<Type>Real</Type>
</PropertyDefn>
</GMLFeatureClass>
</GMLFeatureClassList>

View File

@ -0,0 +1,357 @@
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=""
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy>
<gml:Box>
<gml:coord><gml:X>-1</gml:X><gml:Y>-3</gml:Y></gml:coord>
<gml:coord><gml:X>10</gml:X><gml:Y>6</gml:Y></gml:coord>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>8</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>9</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>10</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>13</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>6</ogr:node_index>
<ogr:distance>16</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,4</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>1.4142135623731</ogr:distance>
<ogr:angle>202.5</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,4</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>3.41421356237309</ogr:distance>
<ogr:angle>337.5</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>4.82842712474619</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>bbaaa</ogr:name>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,6</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>bbaaa</ogr:name>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>1</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,6</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>bbaaa</ogr:name>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>bbaaa</ogr:name>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>bbaaa</ogr:name>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>8</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>12</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>16</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>17.4142135623731</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>6</ogr:node_index>
<ogr:distance>19.4142135623731</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,-2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>7</ogr:node_index>
<ogr:distance>21.4142135623731</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>8</ogr:node_index>
<ogr:distance>23.4142135623731</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:node_index>9</ogr:node_index>
<ogr:distance>25.4142135623731</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.4">
<ogr:intval>120</ogr:intval>
<ogr:floatval>-100291.43213</ogr:floatval>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>99.217474411461</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:distance>3.16227766016838</ogr:distance>
<ogr:angle>144.217474411461</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:distance>7.16227766016838</ogr:distance>
<ogr:angle>238.282525588539</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:distance>11.634413615168</ogr:distance>
<ogr:angle>328.282525588539</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:distance>14.634413615168</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_polys fid="polys.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>5</ogr:node_index>
<ogr:distance>15.634413615168</ogr:distance>
<ogr:angle>99.217474411461</ogr:angle>
</ogr:extract_nodes_polys>
</gml:featureMember>
</ogr:FeatureCollection>

View File

@ -870,3 +870,49 @@ tests:
OUTPUT_LAYER:
name: expected/single_sided_buffer_multiline_bevel.gml
type: vector
- algorithm: qgis:extractnodes
name: Test (qgis:extractnodes)
params:
INPUT:
name: multipolys.gml
type: vector
results:
OUTPUT:
name: expected/extract_nodes_multipolys.gml
type: vector
- algorithm: qgis:extractnodes
name: Test (qgis:extractnodes)
params:
INPUT:
name: polys.gml
type: vector
results:
OUTPUT:
name: expected/extract_nodes_polys.gml
type: vector
- algorithm: qgis:extractnodes
name: Test (qgis:extractnodes)
params:
INPUT:
name: multilines.gml
type: vector
results:
OUTPUT:
name: expected/extract_nodes_multilines.gml
type: vector
- algorithm: qgis:extractnodes
name: Test (qgis:extractnodes)
params:
INPUT:
name: lines.gml
type: vector
results:
OUTPUT:
name: expected/extract_nodes_lines.gml
type: vector