[processing] nodes -> vertices algorithm renaming

- "Extract nodes" renamed to "Extract vertices"
- "Extract specific nodes" renamed to "Extract specific vertices"
This commit is contained in:
Mathieu Pellerin 2018-01-29 19:16:43 +07:00 committed by GitHub
parent a420d0410a
commit e0c12d519f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 667 additions and 669 deletions

View File

@ -176,17 +176,12 @@ qgis:extractbyexpression: >
For more information about expressions see the <a href ="{qgisdocs}/user_manual/working_with_vector/expression.html">user manual</a>
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.
qgis:extractspecificvertices: >
This algorithm takes a line or polygon layer and generates a point layer with points representing specific vertices in the input lines or polygons. For instance, this algorithm can be used to extract the first or last vertices in the geometry. 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.
The vertex indices parameter accepts a comma separated string specifying the indices of the vertices to extract. The first vertex corresponds to an index of 0, the second vertex has an index of 1, etc. Negative indices can be used to find vertices at the end of the geometry, e.g., an index of -1 corresponds to the last vertex, -2 corresponds to the second last vertex, etc.
qgis:extractspecificnodes: >
This algorithm takes a line or polygon layer and generates a point layer with points representing specific nodes in the input lines or polygons. For instance, this algorithm can be used to extract the first or last nodes in the geometry. The attributes associated to each point are the same ones associated to the line or polygon that the point belongs to.
The node indices parameter accepts a comma separated string specifying the indices of the nodes to extract. The first node corresponds to an index of 0, the second node has an index of 1, etc. Negative indices can be used to find nodes at the end of the geometry, e.g., an index of -1 corresponds to the last node, -2 corresponds to the second last node, etc.
Additional fields are added to the nodes indicating the specific node position (e.g., 0, -1, etc), the original node index, the nodes part and its index within the part (as well as its ring for polygons), distance along the original geometry and bisector angle of node for the original geometry.
Additional fields are added to the points indicating the specific vertex position (e.g., 0, -1, etc), the original vertex index, the vertexs part and its index within the part (as well as its ring for polygons), distance along the original geometry and bisector angle of vertex for the 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 the properties and attributes of the feature.

View File

@ -38,7 +38,7 @@ class DensifyGeometries(QgisFeatureBasedAlgorithm):
VERTICES = 'VERTICES'
def tags(self):
return self.tr('add,vertices,points').split(',')
return self.tr('add,vertex,vertices,points,nodes').split(',')
def group(self):
return self.tr('Vector geometry')

View File

@ -36,6 +36,9 @@ class DensifyGeometriesInterval(QgisFeatureBasedAlgorithm):
INTERVAL = 'INTERVAL'
def tags(self):
return self.tr('add,vertex,vertices,points,nodes').split(',')
def group(self):
return self.tr('Vector geometry')

View File

@ -2,7 +2,7 @@
"""
***************************************************************************
ExtractSpecificNodes.py
ExtractSpecificVertices.py
--------------------
Date : October 2016
Copyright : (C) 2016 by Nyall Dawson
@ -42,10 +42,10 @@ from qgis.core import (QgsWkbTypes,
from qgis.PyQt.QtCore import QVariant
class ExtractSpecificNodes(QgisAlgorithm):
class ExtractSpecificVertices(QgisAlgorithm):
INPUT = 'INPUT'
OUTPUT = 'OUTPUT'
NODES = 'NODES'
VERTICES = 'VERTICES'
def group(self):
return self.tr('Vector geometry')
@ -59,29 +59,29 @@ class ExtractSpecificNodes(QgisAlgorithm):
def initAlgorithm(self, config=None):
self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
self.tr('Input layer'), [QgsProcessing.TypeVectorAnyGeometry]))
self.addParameter(QgsProcessingParameterString(self.NODES,
self.tr('Node indices'), defaultValue='0'))
self.addParameter(QgsProcessingParameterString(self.VERTICES,
self.tr('Vertex indices'), defaultValue='0'))
self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Nodes'), QgsProcessing.TypeVectorPoint))
self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Vertices'), QgsProcessing.TypeVectorPoint))
def name(self):
return 'extractspecificnodes'
return 'extractspecificvertices'
def displayName(self):
return self.tr('Extract specific nodes')
return self.tr('Extract specific vertices')
def tags(self):
return self.tr('points,vertex,vertices').split(',')
return self.tr('points,vertex,nodes').split(',')
def processAlgorithm(self, parameters, context, feedback):
source = self.parameterAsSource(parameters, self.INPUT, context)
fields = source.fields()
fields.append(QgsField('node_pos', QVariant.Int))
fields.append(QgsField('node_index', QVariant.Int))
fields.append(QgsField('node_part', QVariant.Int))
fields.append(QgsField('vertex_pos', QVariant.Int))
fields.append(QgsField('vertex_index', QVariant.Int))
fields.append(QgsField('vertex_part', QVariant.Int))
if QgsWkbTypes.geometryType(source.wkbType()) == QgsWkbTypes.PolygonGeometry:
fields.append(QgsField('node_part_ring', QVariant.Int))
fields.append(QgsField('node_part_index', QVariant.Int))
fields.append(QgsField('vertex_part_ring', QVariant.Int))
fields.append(QgsField('vertex_part_index', QVariant.Int))
fields.append(QgsField('distance', QVariant.Double))
fields.append(QgsField('angle', QVariant.Double))
@ -94,14 +94,14 @@ class ExtractSpecificNodes(QgisAlgorithm):
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
fields, wkb_type, source.sourceCrs())
node_indices_string = self.parameterAsString(parameters, self.NODES, context)
vertex_indices_string = self.parameterAsString(parameters, self.VERTICES, context)
indices = []
for node in node_indices_string.split(','):
for vertex in vertex_indices_string.split(','):
try:
indices.append(int(node))
indices.append(int(vertex))
except:
raise QgsProcessingException(
self.tr('\'{}\' is not a valid node index').format(node))
self.tr('\'{}\' is not a valid vertex index').format(vertex))
features = source.getFeatures()
total = 100.0 / source.featureCount() if source.featureCount() else 0
@ -114,26 +114,26 @@ class ExtractSpecificNodes(QgisAlgorithm):
if not input_geometry:
sink.addFeature(f, QgsFeatureSink.FastInsert)
else:
total_nodes = input_geometry.constGet().nCoordinates()
total_vertices = input_geometry.constGet().nCoordinates()
for node in indices:
if node < 0:
node_index = total_nodes + node
for vertex in indices:
if vertex < 0:
vertex_index = total_vertices + vertex
else:
node_index = node
vertex_index = vertex
if node_index < 0 or node_index >= total_nodes:
if vertex_index < 0 or vertex_index >= total_vertices:
continue
(success, vertex_id) = input_geometry.vertexIdFromVertexNr(node_index)
(success, vertex_id) = input_geometry.vertexIdFromVertexNr(vertex_index)
distance = input_geometry.distanceToVertex(node_index)
angle = math.degrees(input_geometry.angleAtVertex(node_index))
distance = input_geometry.distanceToVertex(vertex_index)
angle = math.degrees(input_geometry.angleAtVertex(vertex_index))
output_feature = QgsFeature()
attrs = f.attributes()
attrs.append(node)
attrs.append(node_index)
attrs.append(vertex)
attrs.append(vertex_index)
attrs.append(vertex_id.part)
if QgsWkbTypes.geometryType(source.wkbType()) == QgsWkbTypes.PolygonGeometry:
attrs.append(vertex_id.ring)
@ -142,7 +142,7 @@ class ExtractSpecificNodes(QgisAlgorithm):
attrs.append(angle)
output_feature.setAttributes(attrs)
point = input_geometry.vertexAt(node_index)
point = input_geometry.vertexAt(vertex_index)
output_feature.setGeometry(QgsGeometry(point))
sink.addFeature(output_feature, QgsFeatureSink.FastInsert)

View File

@ -63,7 +63,7 @@ from .Explode import Explode
from .ExportGeometryInfo import ExportGeometryInfo
from .ExtendLines import ExtendLines
from .ExtentFromLayer import ExtentFromLayer
from .ExtractSpecificNodes import ExtractSpecificNodes
from .ExtractSpecificVertices import ExtractSpecificVertices
from .FieldPyculator import FieldsPyculator
from .FieldsCalculator import FieldsCalculator
from .FieldsMapper import FieldsMapper
@ -183,7 +183,7 @@ class QgisAlgorithmProvider(QgsProcessingProvider):
ExportGeometryInfo(),
ExtendLines(),
ExtentFromLayer(),
ExtractSpecificNodes(),
ExtractSpecificVertices(),
FieldsCalculator(),
FieldsMapper(),
FieldsPyculator(),

View File

@ -12,18 +12,18 @@
<ExtentYMax>5.00000</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -14,9 +14,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -24,9 +24,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -34,9 +34,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>22.50000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -44,9 +44,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>6.82842712474619</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -54,9 +54,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -64,9 +64,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -74,9 +74,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>0.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -84,9 +84,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -94,9 +94,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -104,9 +104,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>0.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -114,9 +114,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -124,9 +124,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -134,9 +134,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -144,9 +144,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -154,9 +154,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
@ -164,18 +164,18 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>5.65685424949238</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_lines fid="lines.6">
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_nodes_lines>

View File

@ -12,18 +12,18 @@
<ExtentYMax>4.11977</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -14,9 +14,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -24,9 +24,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -34,9 +34,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -44,9 +44,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -54,9 +54,9 @@
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.02418426103647,2.4147792706334</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>180.97931965433949</ogr:angle>
</ogr:extract_nodes_multilines>
@ -64,18 +64,18 @@
<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:node_part>1</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3.41498595862145</ogr:distance>
<ogr:angle>180.97931965433949</ogr:angle>
</ogr:extract_nodes_multilines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.3">
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_nodes_multilines>
@ -83,9 +83,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>0.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -93,9 +93,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -103,9 +103,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -113,9 +113,9 @@
<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:node_part>0</ogr:node_part>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>0.00000000000000</ogr:angle>
</ogr:extract_nodes_multilines>
@ -123,9 +123,9 @@
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2.94433781190019,4.04721689059501</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>88.34769532234870</ogr:angle>
</ogr:extract_nodes_multilines>
@ -133,9 +133,9 @@
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.4595009596929,4.11976967370441</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>6.51620936457033</ogr:distance>
<ogr:angle>88.34769532234870</ogr:angle>
</ogr:extract_nodes_multilines>
@ -143,9 +143,9 @@
<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:node_part>2</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>2</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>6.51620936457033</ogr:distance>
<ogr:angle>91.18035448020294</ogr:angle>
</ogr:extract_nodes_multilines>
@ -153,9 +153,9 @@
<gml:featureMember>
<ogr:extract_nodes_multilines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.58042226487524,2.9468330134357</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_index>7</ogr:node_index>
<ogr:node_part>2</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>7</ogr:vertex_index>
<ogr:vertex_part>2</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>9.09717929727474</ogr:distance>
<ogr:angle>91.18035448020294</ogr:angle>
</ogr:extract_nodes_multilines>

View File

@ -28,23 +28,23 @@
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_ring</Name>
<ElementPath>node_part_ring</ElementPath>
<Name>vertex_part_ring</Name>
<ElementPath>vertex_part_ring</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -17,10 +17,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -31,10 +31,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>1.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -45,10 +45,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -59,10 +59,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -73,10 +73,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -87,10 +87,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>6.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -101,10 +101,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>1</ogr:Bintval>
<ogr:Bfloatval>0.123</ogr:Bfloatval>
<ogr:node_index>6</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>6</ogr:node_part_index>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>6</ogr:vertex_part_index>
<ogr:distance>8.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -115,10 +115,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -129,10 +129,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>1.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -143,10 +143,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>5.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -157,10 +157,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>6.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -171,10 +171,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>10.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -185,10 +185,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>10.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -199,10 +199,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>6</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>11.00000000000000</ogr:distance>
<ogr:angle>180.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -213,10 +213,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>7</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>7</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>12.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -227,10 +227,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>8</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>8</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>13.00000000000000</ogr:distance>
<ogr:angle>67.50000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -241,10 +241,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>9</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>9</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>14.41421356237310</ogr:distance>
<ogr:angle>22.50000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -255,10 +255,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>10</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_index>10</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>15.41421356237310</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -269,10 +269,10 @@
<ogr:Bname xsi:nil="true"/>
<ogr:Bintval xsi:nil="true"/>
<ogr:Bfloatval xsi:nil="true"/>
<ogr:node_index>11</ogr:node_index>
<ogr:node_part>1</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>6</ogr:node_part_index>
<ogr:vertex_index>11</ogr:vertex_index>
<ogr:vertex_part>1</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>6</ogr:vertex_part_index>
<ogr:distance>17.41421356237310</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -283,10 +283,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -297,10 +297,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>1.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -311,10 +311,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -325,10 +325,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -339,10 +339,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>2</ogr:Bintval>
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_multipolys>
@ -352,10 +352,10 @@
<ogr:Bname>Test</ogr:Bname>
<ogr:Bintval>3</ogr:Bintval>
<ogr:Bfloatval>0</ogr:Bfloatval>
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_ring xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_ring xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_nodes_multipolys>

View File

@ -28,23 +28,23 @@
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_ring</Name>
<ElementPath>node_part_ring</ElementPath>
<Name>vertex_part_ring</Name>
<ElementPath>vertex_part_ring</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -17,10 +17,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -31,10 +31,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -45,10 +45,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>8.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -59,10 +59,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>9.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -73,10 +73,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>10.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -87,10 +87,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>13.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -101,10 +101,10 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_index>6</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>6</ogr:node_part_index>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>6</ogr:vertex_part_index>
<ogr:distance>16.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -115,10 +115,10 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -129,10 +129,10 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>1.41421356237310</ogr:distance>
<ogr:angle>202.49999999999997</ogr:angle>
</ogr:extract_nodes_polys>
@ -143,10 +143,10 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>3.41421356237309</ogr:distance>
<ogr:angle>337.49999999999994</ogr:angle>
</ogr:extract_nodes_polys>
@ -157,10 +157,10 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>4.82842712474619</ogr:distance>
<ogr:angle>90.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -171,10 +171,10 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -185,10 +185,10 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>1.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -199,10 +199,10 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>2.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -213,10 +213,10 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>3.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -227,10 +227,10 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -241,10 +241,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -255,10 +255,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>4.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -269,10 +269,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>8.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -283,10 +283,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>12.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -297,10 +297,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>16.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -311,10 +311,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>16.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -325,10 +325,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>6</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>18.00000000000000</ogr:distance>
<ogr:angle>135.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -339,10 +339,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>7</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>7</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>20.00000000000000</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -353,10 +353,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>8</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>8</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>22.00000000000000</ogr:distance>
<ogr:angle>315.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -367,10 +367,10 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_index>9</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>9</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>24.00000000000000</ogr:distance>
<ogr:angle>225.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -380,10 +380,10 @@
<ogr:name xsi:nil="true"/>
<ogr:intval>120</ogr:intval>
<ogr:floatval>-100291.43213</ogr:floatval>
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_ring xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_ring xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_nodes_polys>
@ -394,10 +394,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0.00000000000000</ogr:distance>
<ogr:angle>99.21747441146101</ogr:angle>
</ogr:extract_nodes_polys>
@ -408,10 +408,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3.16227766016838</ogr:distance>
<ogr:angle>144.21747441146101</ogr:angle>
</ogr:extract_nodes_polys>
@ -422,10 +422,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>7.16227766016838</ogr:distance>
<ogr:angle>238.28252558853902</ogr:angle>
</ogr:extract_nodes_polys>
@ -436,10 +436,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>11.63441361516796</ogr:distance>
<ogr:angle>328.28252558853899</ogr:angle>
</ogr:extract_nodes_polys>
@ -450,10 +450,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>14.63441361516796</ogr:distance>
<ogr:angle>45.00000000000000</ogr:angle>
</ogr:extract_nodes_polys>
@ -464,10 +464,10 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>15.63441361516796</ogr:distance>
<ogr:angle>99.21747441146101</ogr:angle>
</ogr:extract_nodes_polys>

View File

@ -12,23 +12,23 @@
<ExtentYMax>5.00000</ExtentYMax>
</DatasetSpecificInfo>
<PropertyDefn>
<Name>node_pos</Name>
<ElementPath>node_pos</ElementPath>
<Name>vertex_pos</Name>
<ElementPath>vertex_pos</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -14,10 +14,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -25,10 +25,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>11,5</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>6.82842712474619</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -36,10 +36,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>2</ogr:node_pos>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_pos>2</ogr:vertex_pos>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>22.5</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -47,10 +47,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.0">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>22.5</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -58,10 +58,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -69,10 +69,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -80,10 +80,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -91,10 +91,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,0</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -102,10 +102,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>0</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -113,10 +113,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>2</ogr:node_pos>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_pos>2</ogr:vertex_pos>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -124,10 +124,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -135,10 +135,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -146,10 +146,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>2</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -157,10 +157,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -168,10 +168,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -179,10 +179,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -190,10 +190,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -201,10 +201,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -212,10 +212,10 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,1</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>5.65685424949238</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
@ -223,20 +223,20 @@
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:node_pos>-2</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-2</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_lines>
</gml:featureMember>
<gml:featureMember>
<ogr:extract_specific_nodes_lines fid="lines.6">
<ogr:node_pos xsi:nil="true"/>
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_pos xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_specific_nodes_lines>

View File

@ -28,28 +28,28 @@
<Type>Real</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_pos</Name>
<ElementPath>node_pos</ElementPath>
<Name>vertex_pos</Name>
<ElementPath>vertex_pos</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_index</Name>
<ElementPath>node_index</ElementPath>
<Name>vertex_index</Name>
<ElementPath>vertex_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part</Name>
<ElementPath>node_part</ElementPath>
<Name>vertex_part</Name>
<ElementPath>vertex_part</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_ring</Name>
<ElementPath>node_part_ring</ElementPath>
<Name>vertex_part_ring</Name>
<ElementPath>vertex_part_ring</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>
<Name>node_part_index</Name>
<ElementPath>node_part_index</ElementPath>
<Name>vertex_part_index</Name>
<ElementPath>vertex_part_index</ElementPath>
<Type>Integer</Type>
</PropertyDefn>
<PropertyDefn>

View File

@ -17,11 +17,11 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -32,11 +32,11 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>6</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>6</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>6</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>6</ogr:vertex_part_index>
<ogr:distance>16</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -47,11 +47,11 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_pos>5</ogr:node_pos>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_pos>5</ogr:vertex_pos>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>13</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -62,11 +62,11 @@
<ogr:name>aaaaa</ogr:name>
<ogr:intval>33</ogr:intval>
<ogr:floatval>44.123456</ogr:floatval>
<ogr:node_pos>-5</ogr:node_pos>
<ogr:node_index>2</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>2</ogr:node_part_index>
<ogr:vertex_pos>-5</ogr:vertex_pos>
<ogr:vertex_index>2</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>2</ogr:vertex_part_index>
<ogr:distance>8</ogr:distance>
<ogr:angle>135</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -77,11 +77,11 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -92,11 +92,11 @@
<ogr:name>Aaaaa</ogr:name>
<ogr:intval>-33</ogr:intval>
<ogr:floatval>0</ogr:floatval>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>3</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>3</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>3</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>3</ogr:vertex_part_index>
<ogr:distance>4.82842712474619</ogr:distance>
<ogr:angle>90</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -107,11 +107,11 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -122,11 +122,11 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>4</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>4</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>4</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -137,11 +137,11 @@
<ogr:name>bbaaa</ogr:name>
<ogr:intval xsi:nil="true"/>
<ogr:floatval>0.123</ogr:floatval>
<ogr:node_pos>-5</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-5</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>315</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -152,11 +152,11 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>45</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -167,11 +167,11 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>9</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>4</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>9</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>4</ogr:vertex_part_index>
<ogr:distance>24</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -182,11 +182,11 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_pos>5</ogr:node_pos>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>5</ogr:vertex_pos>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>16</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -197,11 +197,11 @@
<ogr:name>ASDF</ogr:name>
<ogr:intval>0</ogr:intval>
<ogr:floatval xsi:nil="true"/>
<ogr:node_pos>-5</ogr:node_pos>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>1</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>-5</ogr:vertex_pos>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>1</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>16</ogr:distance>
<ogr:angle>225</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -211,11 +211,11 @@
<ogr:name xsi:nil="true"/>
<ogr:intval>120</ogr:intval>
<ogr:floatval>-100291.43213</ogr:floatval>
<ogr:node_pos xsi:nil="true"/>
<ogr:node_index xsi:nil="true"/>
<ogr:node_part xsi:nil="true"/>
<ogr:node_part_ring xsi:nil="true"/>
<ogr:node_part_index xsi:nil="true"/>
<ogr:vertex_pos xsi:nil="true"/>
<ogr:vertex_index xsi:nil="true"/>
<ogr:vertex_part xsi:nil="true"/>
<ogr:vertex_part_ring xsi:nil="true"/>
<ogr:vertex_part_index xsi:nil="true"/>
<ogr:distance xsi:nil="true"/>
<ogr:angle xsi:nil="true"/>
</ogr:extract_specific_nodes_polys>
@ -226,11 +226,11 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_pos>0</ogr:node_pos>
<ogr:node_index>0</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>0</ogr:node_part_index>
<ogr:vertex_pos>0</ogr:vertex_pos>
<ogr:vertex_index>0</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>0</ogr:vertex_part_index>
<ogr:distance>0</ogr:distance>
<ogr:angle>99.217474411461</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -241,11 +241,11 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_pos>-1</ogr:node_pos>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_pos>-1</ogr:vertex_pos>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>15.634413615168</ogr:distance>
<ogr:angle>99.217474411461</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -256,11 +256,11 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_pos>5</ogr:node_pos>
<ogr:node_index>5</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>5</ogr:node_part_index>
<ogr:vertex_pos>5</ogr:vertex_pos>
<ogr:vertex_index>5</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>5</ogr:vertex_part_index>
<ogr:distance>15.634413615168</ogr:distance>
<ogr:angle>99.217474411461</ogr:angle>
</ogr:extract_specific_nodes_polys>
@ -271,11 +271,11 @@
<ogr:name>elim</ogr:name>
<ogr:intval>2</ogr:intval>
<ogr:floatval>3.33</ogr:floatval>
<ogr:node_pos>-5</ogr:node_pos>
<ogr:node_index>1</ogr:node_index>
<ogr:node_part>0</ogr:node_part>
<ogr:node_part_ring>0</ogr:node_part_ring>
<ogr:node_part_index>1</ogr:node_part_index>
<ogr:vertex_pos>-5</ogr:vertex_pos>
<ogr:vertex_index>1</ogr:vertex_index>
<ogr:vertex_part>0</ogr:vertex_part>
<ogr:vertex_part_ring>0</ogr:vertex_part_ring>
<ogr:vertex_part_index>1</ogr:vertex_part_index>
<ogr:distance>3.16227766016838</ogr:distance>
<ogr:angle>144.217474411461</ogr:angle>
</ogr:extract_specific_nodes_polys>

View File

@ -1267,8 +1267,8 @@ tests:
name: expected/single_sided_buffer_multiline_bevel.gml
type: vector
- algorithm: qgis:extractnodes
name: Test (qgis:extractnodes)
- algorithm: qgis:extractvertices
name: Extract vertices from multipolygons
params:
INPUT:
name: multipolys.gml
@ -1284,8 +1284,8 @@ tests:
angle:
precision: 7
- algorithm: qgis:extractnodes
name: Extract nodes from polygons
- algorithm: qgis:extractvertices
name: Extract vertices from polygons
params:
INPUT:
name: polys.gml
@ -1301,8 +1301,8 @@ tests:
angle:
precision: 7
- algorithm: qgis:extractnodes
name: Extract nodes from multilines
- algorithm: qgis:extractvertices
name: Extract vertices from multilines
params:
INPUT:
name: multilines.gml
@ -1318,8 +1318,8 @@ tests:
angle:
precision: 7
- algorithm: qgis:extractnodes
name: Extract nodes from lines
- algorithm: qgis:extractvertices
name: Extract vertices from lines
params:
INPUT:
name: lines.gml
@ -1756,13 +1756,13 @@ tests:
name: expected/extend_multilines.gml
type: vector
- algorithm: qgis:extractspecificnodes
name: Extract specific nodes lines
- algorithm: qgis:extractspecificvertices
name: Extract specific vertices lines
params:
INPUT:
name: lines.gml
type: vector
NODES: 0,-1,2,-2
VERTICES: 0,-1,2,-2
results:
OUTPUT:
name: expected/extract_specific_nodes_lines.gml
@ -1771,13 +1771,13 @@ tests:
fields:
fid: skip
- algorithm: qgis:extractspecificnodes
name: Extract specific nodes polygons
- algorithm: qgis:extractspecificvertices
name: Extract specific vertices polygons
params:
INPUT:
name: polys.gml
type: vector
NODES: 0,-1,5,-5
VERTICES: 0,-1,5,-5
results:
OUTPUT:
name: expected/extract_specific_nodes_polys.gml
@ -4686,8 +4686,8 @@ tests:
name: expected/difference.gml
type: vector
- algorithm: native:removeduplicatenodes
name: Remove duplicate nodes lines
- algorithm: native:removeduplicatevertices
name: Remove duplicate vertices from lines
params:
INPUT:
name: custom/line_duplicate_nodes.gml

View File

@ -35,7 +35,7 @@ SET(QGIS_ANALYSIS_SRCS
processing/qgsalgorithmextractbyexpression.cpp
processing/qgsalgorithmextractbyextent.cpp
processing/qgsalgorithmextractbylocation.cpp
processing/qgsalgorithmextractnodes.cpp
processing/qgsalgorithmextractvertices.cpp
processing/qgsalgorithmfiledownloader.cpp
processing/qgsalgorithmfixgeometries.cpp
processing/qgsalgorithmjoinbyattribute.cpp
@ -52,7 +52,7 @@ SET(QGIS_ANALYSIS_SRCS
processing/qgsalgorithmpackage.cpp
processing/qgsalgorithmpromotetomultipart.cpp
processing/qgsalgorithmrasterlayeruniquevalues.cpp
processing/qgsalgorithmremoveduplicatenodes
processing/qgsalgorithmremoveduplicatevertices.cpp
processing/qgsalgorithmremovenullgeometry.cpp
processing/qgsalgorithmrenamelayer.cpp
processing/qgsalgorithmsaveselectedfeatures.cpp

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsalgorithmextractnodes.cpp
qgsalgorithmextractvertices.cpp
--------------------------
begin : November 2017
copyright : (C) 2017 by Mathieu Pellerin
@ -15,58 +15,58 @@
* *
***************************************************************************/
#include "qgsalgorithmextractnodes.h"
#include "qgsalgorithmextractvertices.h"
#include "qgsabstractgeometry.h"
#include "qgsgeometryutils.h"
///@cond PRIVATE
QString QgsExtractNodesAlgorithm::name() const
QString QgsExtractVerticesAlgorithm::name() const
{
return QStringLiteral( "extractnodes" );
return QStringLiteral( "extractvertices" );
}
QString QgsExtractNodesAlgorithm::displayName() const
QString QgsExtractVerticesAlgorithm::displayName() const
{
return QObject::tr( "Extract nodes" );
return QObject::tr( "Extract vertices" );
}
QStringList QgsExtractNodesAlgorithm::tags() const
QStringList QgsExtractVerticesAlgorithm::tags() const
{
return QObject::tr( "points,vertex,vertices" ).split( ',' );
return QObject::tr( "points,vertex,nodes" ).split( ',' );
}
QString QgsExtractNodesAlgorithm::group() const
QString QgsExtractVerticesAlgorithm::group() const
{
return QObject::tr( "Vector geometry" );
}
QString QgsExtractNodesAlgorithm::groupId() const
QString QgsExtractVerticesAlgorithm::groupId() const
{
return QStringLiteral( "vectorgeometry" );
}
QString QgsExtractNodesAlgorithm::shortHelpString() const
QString QgsExtractVerticesAlgorithm::shortHelpString() const
{
return QObject::tr( "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." ) +
return QObject::tr( "This algorithm takes a line or polygon layer and generates a point layer with points representing the vertices 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." ) +
QStringLiteral( "\n\n" ) +
QObject::tr( "Additional fields are added to the nodes indicating the node index (beginning at 0), the nodes part and its index within the part (as well as its ring for polygons), distance along original geometry and bisector angle of node for original geometry." );
QObject::tr( "Additional fields are added to the point indicating the vertex index (beginning at 0), the vertexs part and its index within the part (as well as its ring for polygons), distance along original geometry and bisector angle of vertex for original geometry." );
}
QgsExtractNodesAlgorithm *QgsExtractNodesAlgorithm::createInstance() const
QgsExtractVerticesAlgorithm *QgsExtractVerticesAlgorithm::createInstance() const
{
return new QgsExtractNodesAlgorithm();
return new QgsExtractVerticesAlgorithm();
}
void QgsExtractNodesAlgorithm::initAlgorithm( const QVariantMap & )
void QgsExtractVerticesAlgorithm::initAlgorithm( const QVariantMap & )
{
addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) );
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Nodes" ) ) );
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Vertices" ) ) );
}
QVariantMap QgsExtractNodesAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
QVariantMap QgsExtractVerticesAlgorithm::processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
{
std::unique_ptr< QgsFeatureSource > featureSource( parameterAsSource( parameters, QStringLiteral( "INPUT" ), context ) );
if ( !featureSource )
@ -83,13 +83,13 @@ QVariantMap QgsExtractNodesAlgorithm::processAlgorithm( const QVariantMap &param
}
QgsFields outputFields = featureSource->fields();
outputFields.append( QgsField( QStringLiteral( "node_index" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "node_part" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "vertex_index" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "vertex_part" ), QVariant::Int, QString(), 10, 0 ) );
if ( QgsWkbTypes::geometryType( featureSource->wkbType() ) == QgsWkbTypes::PolygonGeometry )
{
outputFields.append( QgsField( QStringLiteral( "node_part_ring" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "vertex_part_ring" ), QVariant::Int, QString(), 10, 0 ) );
}
outputFields.append( QgsField( QStringLiteral( "node_part_index" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "vertex_part_index" ), QVariant::Int, QString(), 10, 0 ) );
outputFields.append( QgsField( QStringLiteral( "distance" ), QVariant::Double, QString(), 20, 14 ) );
outputFields.append( QgsField( QStringLiteral( "angle" ), QVariant::Double, QString(), 20, 14 ) );

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsalgorithmextractnodes.h
qgsalgorithmextractvertices.h
-------------------------
begin : November 2017
copyright : (C) 2017 by Mathieu Pellerin
@ -15,8 +15,8 @@
* *
***************************************************************************/
#ifndef QGSALGORITHMEXTRACTNODES_H
#define QGSALGORITHMEXTRACTNODES_H
#ifndef QGSALGORITHMEXTRACTVERTICES_H
#define QGSALGORITHMEXTRACTVERTICES_H
#define SIP_NO_FILE
@ -28,12 +28,12 @@
/**
* Native extract nodes algorithm.
*/
class QgsExtractNodesAlgorithm : public QgsProcessingAlgorithm
class QgsExtractVerticesAlgorithm : public QgsProcessingAlgorithm
{
public:
QgsExtractNodesAlgorithm() = default;
QgsExtractVerticesAlgorithm() = default;
void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
QString name() const override;
QString displayName() const override;
@ -41,7 +41,7 @@ class QgsExtractNodesAlgorithm : public QgsProcessingAlgorithm
QString group() const override;
QString groupId() const override;
QString shortHelpString() const override;
QgsExtractNodesAlgorithm *createInstance() const override SIP_FACTORY;
QgsExtractVerticesAlgorithm *createInstance() const override SIP_FACTORY;
protected:
@ -52,6 +52,6 @@ class QgsExtractNodesAlgorithm : public QgsProcessingAlgorithm
///@endcond PRIVATE
#endif // QGSALGORITHMEXTRACTNODES_H
#endif // QGSALGORITHMEXTRACTVERTICES_H

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsalgorithmremoveduplicatenodes.cpp
qgsalgorithmremoveduplicatevertices.cpp
---------------------
begin : November 2017
copyright : (C) 2017 by Nyall Dawson
@ -15,60 +15,60 @@
* *
***************************************************************************/
#include "qgsalgorithmremoveduplicatenodes.h"
#include "qgsalgorithmremoveduplicatevertices.h"
///@cond PRIVATE
QString QgsAlgorithmRemoveDuplicateNodes::name() const
QString QgsAlgorithmRemoveDuplicateVertices::name() const
{
return QStringLiteral( "removeduplicatenodes" );
return QStringLiteral( "removeduplicatevertices" );
}
QString QgsAlgorithmRemoveDuplicateNodes::displayName() const
QString QgsAlgorithmRemoveDuplicateVertices::displayName() const
{
return QObject::tr( "Remove duplicate nodes" );
return QObject::tr( "Remove duplicate vertices" );
}
QStringList QgsAlgorithmRemoveDuplicateNodes::tags() const
QStringList QgsAlgorithmRemoveDuplicateVertices::tags() const
{
return QObject::tr( "points,valid,overlapping" ).split( ',' );
return QObject::tr( "points,valid,overlapping,vertex,nodes" ).split( ',' );
}
QString QgsAlgorithmRemoveDuplicateNodes::group() const
QString QgsAlgorithmRemoveDuplicateVertices::group() const
{
return QObject::tr( "Vector geometry" );
}
QString QgsAlgorithmRemoveDuplicateNodes::groupId() const
QString QgsAlgorithmRemoveDuplicateVertices::groupId() const
{
return QStringLiteral( "vectorgeometry" );
}
QString QgsAlgorithmRemoveDuplicateNodes::outputName() const
QString QgsAlgorithmRemoveDuplicateVertices::outputName() const
{
return QObject::tr( "Cleaned" );
}
QString QgsAlgorithmRemoveDuplicateNodes::shortHelpString() const
QString QgsAlgorithmRemoveDuplicateVertices::shortHelpString() const
{
return QObject::tr( "This algorithm removes duplicate nodes from features, wherever removing the nodes does "
return QObject::tr( "This algorithm removes duplicate vertices from features, wherever removing the vertices does "
"not result in a degenerate geometry.\n\n"
"The tolerance parameter specifies the tolerance for coordinates when determining whether "
"vertices are identical.\n\n"
"By default, z values are not considered when detecting duplicate nodes. E.g. two nodes "
"By default, z values are not considered when detecting duplicate vertices. E.g. two vertices "
"with the same x and y coordinate but different z values will still be considered "
"duplicate and one will be removed. If the Use Z Value parameter is true, then the z values are "
"also tested and nodes with the same x and y but different z will be maintained.\n\n"
"Note that duplicate nodes are not tested between different parts of a multipart geometry. E.g. "
"also tested and vertices with the same x and y but different z will be maintained.\n\n"
"Note that duplicate vertices are not tested between different parts of a multipart geometry. E.g. "
"a multipoint geometry with overlapping points will not be changed by this method." );
}
QgsAlgorithmRemoveDuplicateNodes *QgsAlgorithmRemoveDuplicateNodes::createInstance() const
QgsAlgorithmRemoveDuplicateVertices *QgsAlgorithmRemoveDuplicateVertices::createInstance() const
{
return new QgsAlgorithmRemoveDuplicateNodes();
return new QgsAlgorithmRemoveDuplicateVertices();
}
void QgsAlgorithmRemoveDuplicateNodes::initParameters( const QVariantMap & )
void QgsAlgorithmRemoveDuplicateVertices::initParameters( const QVariantMap & )
{
addParameter( new QgsProcessingParameterNumber( QStringLiteral( "TOLERANCE" ),
QObject::tr( "Tolerance" ), QgsProcessingParameterNumber::Double,
@ -77,14 +77,14 @@ void QgsAlgorithmRemoveDuplicateNodes::initParameters( const QVariantMap & )
QObject::tr( "Use Z Value" ), false ) );
}
bool QgsAlgorithmRemoveDuplicateNodes::prepareAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback * )
bool QgsAlgorithmRemoveDuplicateVertices::prepareAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback * )
{
mTolerance = parameterAsDouble( parameters, QStringLiteral( "TOLERANCE" ), context );
mUseZValues = parameterAsBool( parameters, QStringLiteral( "USE_Z_VALUE" ), context );
return true;
}
QgsFeature QgsAlgorithmRemoveDuplicateNodes::processFeature( const QgsFeature &feature, QgsProcessingContext &, QgsProcessingFeedback * )
QgsFeature QgsAlgorithmRemoveDuplicateVertices::processFeature( const QgsFeature &feature, QgsProcessingContext &, QgsProcessingFeedback * )
{
QgsFeature f = feature;
if ( f.hasGeometry() )

View File

@ -1,5 +1,5 @@
/***************************************************************************
qgsalgorithmremoveduplicatenodes.h
qgsalgorithmremoveduplicatevertices.h
---------------------
begin : November 2017
copyright : (C) 2017 by Nyall Dawson
@ -15,8 +15,8 @@
* *
***************************************************************************/
#ifndef QGSALGORITHMREMOVEDUPLICATENODES_H
#define QGSALGORITHMREMOVEDUPLICATENODES_H
#ifndef QGSALGORITHMREMOVEDUPLICATEVERTICES_H
#define QGSALGORITHMREMOVEDUPLICATEVERTICES_H
#define SIP_NO_FILE
@ -28,19 +28,19 @@
/**
* Native remove duplicate nodes algorithm.
*/
class QgsAlgorithmRemoveDuplicateNodes : public QgsProcessingFeatureBasedAlgorithm
class QgsAlgorithmRemoveDuplicateVertices : public QgsProcessingFeatureBasedAlgorithm
{
public:
QgsAlgorithmRemoveDuplicateNodes() = default;
QgsAlgorithmRemoveDuplicateVertices() = default;
QString name() const override;
QString displayName() const override;
QStringList tags() const override;
QString group() const override;
QString groupId() const override;
QString shortHelpString() const override;
QgsAlgorithmRemoveDuplicateNodes *createInstance() const override SIP_FACTORY;
QgsAlgorithmRemoveDuplicateVertices *createInstance() const override SIP_FACTORY;
void initParameters( const QVariantMap &configuration = QVariantMap() ) override;
protected:
@ -58,6 +58,6 @@ class QgsAlgorithmRemoveDuplicateNodes : public QgsProcessingFeatureBasedAlgorit
///@endcond PRIVATE
#endif // QGSALGORITHMSIMPLIFY_H
#endif // QGSALGORITHMREMOVEDUPLICATEVERTICES_H

View File

@ -32,7 +32,7 @@
#include "qgsalgorithmextractbyexpression.h"
#include "qgsalgorithmextractbyextent.h"
#include "qgsalgorithmextractbylocation.h"
#include "qgsalgorithmextractnodes.h"
#include "qgsalgorithmextractvertices.h"
#include "qgsalgorithmfiledownloader.h"
#include "qgsalgorithmfixgeometries.h"
#include "qgsalgorithmjoinbyattribute.h"
@ -49,7 +49,7 @@
#include "qgsalgorithmpackage.h"
#include "qgsalgorithmpromotetomultipart.h"
#include "qgsalgorithmrasterlayeruniquevalues.h"
#include "qgsalgorithmremoveduplicatenodes.h"
#include "qgsalgorithmremoveduplicatevertices.h"
#include "qgsalgorithmremovenullgeometry.h"
#include "qgsalgorithmrenamelayer.h"
#include "qgsalgorithmsaveselectedfeatures.h"
@ -116,7 +116,7 @@ void QgsNativeAlgorithms::loadAlgorithms()
addAlgorithm( new QgsExtractByExpressionAlgorithm() );
addAlgorithm( new QgsExtractByExtentAlgorithm() );
addAlgorithm( new QgsExtractByLocationAlgorithm() );
addAlgorithm( new QgsExtractNodesAlgorithm() );
addAlgorithm( new QgsExtractVerticesAlgorithm() );
addAlgorithm( new QgsFileDownloaderAlgorithm() );
addAlgorithm( new QgsFixGeometriesAlgorithm() );
addAlgorithm( new QgsJoinByAttributeAlgorithm() );
@ -133,7 +133,7 @@ void QgsNativeAlgorithms::loadAlgorithms()
addAlgorithm( new QgsPackageAlgorithm() );
addAlgorithm( new QgsPromoteToMultipartAlgorithm() );
addAlgorithm( new QgsRasterLayerUniqueValuesReportAlgorithm() );
addAlgorithm( new QgsAlgorithmRemoveDuplicateNodes() );
addAlgorithm( new QgsAlgorithmRemoveDuplicateVertices() );
addAlgorithm( new QgsRemoveNullGeometryAlgorithm() );
addAlgorithm( new QgsRenameLayerAlgorithm() );
addAlgorithm( new QgsSaveSelectedFeatures() );