mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-12 00:06:43 -04:00
[FEATURE][processing] Extract nodes algorithm now saves node
index, distance along line and angle at node Also correctly handles null geometries
This commit is contained in:
parent
986b5313ed
commit
9fa4e776db
@ -166,6 +166,8 @@ qgis:extractbylocation: >
|
||||
qgis:extractnodes: >
|
||||
This algorithm takes a line or polygon layer and generates a point layer with points representing the nodes in the input lines or polygons. The attributes associated to each point are the same ones associated to the line or polygon that the point belongs to.
|
||||
|
||||
Additional fields are added to the nodes indicating the node index (beginning at 0), distance along original geometry and bisector angle of node for original geometry.
|
||||
|
||||
qgis:fieldcalculator: >
|
||||
This algorithm computes a new vector layer with the same features of the input layer, but with an additional attribute. The values of this new attribute are computed from each feature using a mathematical formula, based on te properties and attributes of the feature.
|
||||
|
||||
|
@ -26,10 +26,12 @@ __copyright__ = '(C) 2012, Victor Olaya'
|
||||
__revision__ = '$Format:%H$'
|
||||
|
||||
import os
|
||||
import math
|
||||
|
||||
from qgis.PyQt.QtGui import QIcon
|
||||
from qgis.PyQt.QtCore import QVariant
|
||||
|
||||
from qgis.core import Qgis, QgsFeature, QgsGeometry, QgsWkbTypes
|
||||
from qgis.core import QgsFeature, QgsGeometry, QgsWkbTypes, QgsField
|
||||
|
||||
from processing.core.GeoAlgorithm import GeoAlgorithm
|
||||
from processing.core.parameters import ParameterVector
|
||||
@ -61,25 +63,34 @@ class ExtractNodes(GeoAlgorithm):
|
||||
layer = dataobjects.getObjectFromUri(
|
||||
self.getParameterValue(self.INPUT))
|
||||
|
||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
||||
layer.fields().toList(), QgsWkbTypes.Point, layer.crs())
|
||||
fields = layer.fields()
|
||||
fields.append(QgsField('node_index', QVariant.Int))
|
||||
fields.append(QgsField('distance', QVariant.Double))
|
||||
fields.append(QgsField('angle', QVariant.Double))
|
||||
|
||||
outFeat = QgsFeature()
|
||||
inGeom = QgsGeometry()
|
||||
outGeom = QgsGeometry()
|
||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
||||
fields, QgsWkbTypes.Point, layer.crs())
|
||||
|
||||
features = vector.features(layer)
|
||||
total = 100.0 / len(features)
|
||||
for current, f in enumerate(features):
|
||||
inGeom = f.geometry()
|
||||
attrs = f.attributes()
|
||||
input_geometry = f.geometry()
|
||||
if not input_geometry:
|
||||
writer.addFeature(f)
|
||||
else:
|
||||
points = vector.extractPoints(input_geometry)
|
||||
|
||||
points = vector.extractPoints(inGeom)
|
||||
outFeat.setAttributes(attrs)
|
||||
|
||||
for i in points:
|
||||
outFeat.setGeometry(outGeom.fromPoint(i))
|
||||
writer.addFeature(outFeat)
|
||||
for i, point in enumerate(points):
|
||||
distance = input_geometry.distanceToVertex(i)
|
||||
angle = math.degrees(input_geometry.angleAtVertex(i))
|
||||
attrs = f.attributes()
|
||||
attrs.append(i)
|
||||
attrs.append(distance)
|
||||
attrs.append(angle)
|
||||
output_feature = QgsFeature()
|
||||
output_feature.setAttributes(attrs)
|
||||
output_feature.setGeometry(QgsGeometry.fromPoint(point))
|
||||
writer.addFeature(output_feature)
|
||||
|
||||
progress.setPercentage(int(current * total))
|
||||
|
||||
|
25
python/plugins/processing/tests/testdata/expected/extract_nodes_lines.gfs
vendored
Normal file
25
python/plugins/processing/tests/testdata/expected/extract_nodes_lines.gfs
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<GMLFeatureClassList>
|
||||
<GMLFeatureClass>
|
||||
<Name>extract_nodes_lines</Name>
|
||||
<ElementPath>extract_nodes_lines</ElementPath>
|
||||
<GeometryType>1</GeometryType>
|
||||
<SRSName>EPSG:4326</SRSName>
|
||||
<DatasetSpecificInfo>
|
||||
<FeatureCount>17</FeatureCount>
|
||||
<ExtentXMin>-1.00000</ExtentXMin>
|
||||
<ExtentXMax>11.00000</ExtentXMax>
|
||||
<ExtentYMin>-3.00000</ExtentYMin>
|
||||
<ExtentYMax>5.00000</ExtentYMax>
|
||||
</DatasetSpecificInfo>
|
||||
<PropertyDefn>
|
||||
<Name>distance</Name>
|
||||
<ElementPath>distance</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>angle</Name>
|
||||
<ElementPath>angle</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
</GMLFeatureClass>
|
||||
</GMLFeatureClassList>
|
146
python/plugins/processing/tests/testdata/expected/extract_nodes_lines.gml
vendored
Normal file
146
python/plugins/processing/tests/testdata/expected/extract_nodes_lines.gml
vendored
Normal file
@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ogr:FeatureCollection
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation=""
|
||||
xmlns:ogr="http://ogr.maptools.org/"
|
||||
xmlns:gml="http://www.opengis.net/gml">
|
||||
<gml:boundedBy>
|
||||
<gml:Box>
|
||||
<gml:coord><gml:X>-1</gml:X><gml:Y>-3</gml:Y></gml:coord>
|
||||
<gml:coord><gml:X>11</gml:X><gml:Y>5</gml:Y></gml:coord>
|
||||
</gml:Box>
|
||||
</gml:boundedBy>
|
||||
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>22.5</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>11,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>6.82842712474619</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>0</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>0</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>5.65685424949238</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_lines fid="lines.6">
|
||||
</ogr:extract_nodes_lines>
|
||||
</gml:featureMember>
|
||||
</ogr:FeatureCollection>
|
25
python/plugins/processing/tests/testdata/expected/extract_nodes_multilines.gfs
vendored
Normal file
25
python/plugins/processing/tests/testdata/expected/extract_nodes_multilines.gfs
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<GMLFeatureClassList>
|
||||
<GMLFeatureClass>
|
||||
<Name>extract_nodes_multilines</Name>
|
||||
<ElementPath>extract_nodes_multilines</ElementPath>
|
||||
<GeometryType>1</GeometryType>
|
||||
<SRSName>EPSG:4326</SRSName>
|
||||
<DatasetSpecificInfo>
|
||||
<FeatureCount>15</FeatureCount>
|
||||
<ExtentXMin>-1.00000</ExtentXMin>
|
||||
<ExtentXMax>5.58042</ExtentXMax>
|
||||
<ExtentYMin>-1.00000</ExtentYMin>
|
||||
<ExtentYMax>4.11977</ExtentYMax>
|
||||
</DatasetSpecificInfo>
|
||||
<PropertyDefn>
|
||||
<Name>distance</Name>
|
||||
<ElementPath>distance</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>angle</Name>
|
||||
<ElementPath>angle</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
</GMLFeatureClass>
|
||||
</GMLFeatureClassList>
|
130
python/plugins/processing/tests/testdata/expected/extract_nodes_multilines.gml
vendored
Normal file
130
python/plugins/processing/tests/testdata/expected/extract_nodes_multilines.gml
vendored
Normal file
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ogr:FeatureCollection
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation=""
|
||||
xmlns:ogr="http://ogr.maptools.org/"
|
||||
xmlns:gml="http://www.opengis.net/gml">
|
||||
<gml:boundedBy>
|
||||
<gml:Box>
|
||||
<gml:coord><gml:X>-1</gml:X><gml:Y>-1</gml:Y></gml:coord>
|
||||
<gml:coord><gml:X>5.58042226487524</gml:X><gml:Y>4.119769673704415</gml:Y></gml:coord>
|
||||
</gml:Box>
|
||||
</gml:boundedBy>
|
||||
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.024184261036468,2.414779270633399</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>3.41498595862145</ogr:distance>
|
||||
<ogr:angle>180.979319654339</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>4.82997191724289</ogr:distance>
|
||||
<ogr:angle>180.979319654339</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.3">
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>0</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>0</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2.944337811900192,4.04721689059501</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>5.04869513927144</ogr:distance>
|
||||
<ogr:angle>88.3476953223487</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.459500959692898,4.119769673704415</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>7.56490450384177</ogr:distance>
|
||||
<ogr:angle>88.3476953223487</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>6</ogr:node_index>
|
||||
<ogr:distance>10.2673162217113</ogr:distance>
|
||||
<ogr:angle>91.1803544802029</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multilines fid="lines.4">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.58042226487524,2.946833013435702</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>7</ogr:node_index>
|
||||
<ogr:distance>12.8482861544157</ogr:distance>
|
||||
<ogr:angle>91.1803544802029</ogr:angle>
|
||||
</ogr:extract_nodes_multilines>
|
||||
</gml:featureMember>
|
||||
</ogr:FeatureCollection>
|
41
python/plugins/processing/tests/testdata/expected/extract_nodes_multipolys.gfs
vendored
Normal file
41
python/plugins/processing/tests/testdata/expected/extract_nodes_multipolys.gfs
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
<GMLFeatureClassList>
|
||||
<GMLFeatureClass>
|
||||
<Name>extract_nodes_multipolys</Name>
|
||||
<ElementPath>extract_nodes_multipolys</ElementPath>
|
||||
<GeometryType>1</GeometryType>
|
||||
<SRSName>EPSG:4326</SRSName>
|
||||
<DatasetSpecificInfo>
|
||||
<FeatureCount>25</FeatureCount>
|
||||
<ExtentXMin>0.00000</ExtentXMin>
|
||||
<ExtentXMax>9.00000</ExtentXMax>
|
||||
<ExtentYMin>-1.00000</ExtentYMin>
|
||||
<ExtentYMax>6.00000</ExtentYMax>
|
||||
</DatasetSpecificInfo>
|
||||
<PropertyDefn>
|
||||
<Name>Bname</Name>
|
||||
<ElementPath>Bname</ElementPath>
|
||||
<Type>String</Type>
|
||||
<Width>4</Width>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>Bintval</Name>
|
||||
<ElementPath>Bintval</ElementPath>
|
||||
<Type>Integer</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>Bfloatval</Name>
|
||||
<ElementPath>Bfloatval</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>distance</Name>
|
||||
<ElementPath>distance</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>angle</Name>
|
||||
<ElementPath>angle</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
</GMLFeatureClass>
|
||||
</GMLFeatureClassList>
|
249
python/plugins/processing/tests/testdata/expected/extract_nodes_multipolys.gml
vendored
Normal file
249
python/plugins/processing/tests/testdata/expected/extract_nodes_multipolys.gml
vendored
Normal file
@ -0,0 +1,249 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ogr:FeatureCollection
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation=""
|
||||
xmlns:ogr="http://ogr.maptools.org/"
|
||||
xmlns:gml="http://www.opengis.net/gml">
|
||||
<gml:boundedBy>
|
||||
<gml:Box>
|
||||
<gml:coord><gml:X>0</gml:X><gml:Y>-1</gml:Y></gml:coord>
|
||||
<gml:coord><gml:X>9</gml:X><gml:Y>6</gml:Y></gml:coord>
|
||||
</gml:Box>
|
||||
</gml:boundedBy>
|
||||
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>1</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>6</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>1</ogr:Bintval>
|
||||
<ogr:Bfloatval>0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>6</ogr:node_index>
|
||||
<ogr:distance>8</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>1</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>5</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>6</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>10</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,6</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>17</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>6</ogr:node_index>
|
||||
<ogr:distance>18</ogr:distance>
|
||||
<ogr:angle>180</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,4</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>7</ogr:node_index>
|
||||
<ogr:distance>19</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>8,4</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>8</ogr:node_index>
|
||||
<ogr:distance>20</ogr:distance>
|
||||
<ogr:angle>67.5</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>9</ogr:node_index>
|
||||
<ogr:distance>21.4142135623731</ogr:distance>
|
||||
<ogr:angle>22.5</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,6</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>10</ogr:node_index>
|
||||
<ogr:distance>22.4142135623731</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,6</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:node_index>11</ogr:node_index>
|
||||
<ogr:distance>24.4142135623731</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>2</ogr:Bintval>
|
||||
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>2</ogr:Bintval>
|
||||
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>1</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>2</ogr:Bintval>
|
||||
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>2</ogr:Bintval>
|
||||
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>2</ogr:Bintval>
|
||||
<ogr:Bfloatval>-0.123</ogr:Bfloatval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_multipolys fid="multipolys.3">
|
||||
<ogr:Bname>Test</ogr:Bname>
|
||||
<ogr:Bintval>3</ogr:Bintval>
|
||||
<ogr:Bfloatval>0</ogr:Bfloatval>
|
||||
</ogr:extract_nodes_multipolys>
|
||||
</gml:featureMember>
|
||||
</ogr:FeatureCollection>
|
41
python/plugins/processing/tests/testdata/expected/extract_nodes_polys.gfs
vendored
Normal file
41
python/plugins/processing/tests/testdata/expected/extract_nodes_polys.gfs
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
<GMLFeatureClassList>
|
||||
<GMLFeatureClass>
|
||||
<Name>extract_nodes_polys</Name>
|
||||
<ElementPath>extract_nodes_polys</ElementPath>
|
||||
<GeometryType>1</GeometryType>
|
||||
<SRSName>EPSG:4326</SRSName>
|
||||
<DatasetSpecificInfo>
|
||||
<FeatureCount>33</FeatureCount>
|
||||
<ExtentXMin>-1.00000</ExtentXMin>
|
||||
<ExtentXMax>10.00000</ExtentXMax>
|
||||
<ExtentYMin>-3.00000</ExtentYMin>
|
||||
<ExtentYMax>6.00000</ExtentYMax>
|
||||
</DatasetSpecificInfo>
|
||||
<PropertyDefn>
|
||||
<Name>name</Name>
|
||||
<ElementPath>name</ElementPath>
|
||||
<Type>String</Type>
|
||||
<Width>5</Width>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>intval</Name>
|
||||
<ElementPath>intval</ElementPath>
|
||||
<Type>Integer</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>floatval</Name>
|
||||
<ElementPath>floatval</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>distance</Name>
|
||||
<ElementPath>distance</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
<PropertyDefn>
|
||||
<Name>angle</Name>
|
||||
<ElementPath>angle</ElementPath>
|
||||
<Type>Real</Type>
|
||||
</PropertyDefn>
|
||||
</GMLFeatureClass>
|
||||
</GMLFeatureClassList>
|
357
python/plugins/processing/tests/testdata/expected/extract_nodes_polys.gml
vendored
Normal file
357
python/plugins/processing/tests/testdata/expected/extract_nodes_polys.gml
vendored
Normal file
@ -0,0 +1,357 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ogr:FeatureCollection
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation=""
|
||||
xmlns:ogr="http://ogr.maptools.org/"
|
||||
xmlns:gml="http://www.opengis.net/gml">
|
||||
<gml:boundedBy>
|
||||
<gml:Box>
|
||||
<gml:coord><gml:X>-1</gml:X><gml:Y>-3</gml:Y></gml:coord>
|
||||
<gml:coord><gml:X>10</gml:X><gml:Y>6</gml:Y></gml:coord>
|
||||
</gml:Box>
|
||||
</gml:boundedBy>
|
||||
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>8</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>9</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>10</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>13</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.0">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>aaaaa</ogr:name>
|
||||
<ogr:intval>33</ogr:intval>
|
||||
<ogr:floatval>44.123456</ogr:floatval>
|
||||
<ogr:node_index>6</ogr:node_index>
|
||||
<ogr:distance>16</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>Aaaaa</ogr:name>
|
||||
<ogr:intval>-33</ogr:intval>
|
||||
<ogr:floatval>0</ogr:floatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,4</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>Aaaaa</ogr:name>
|
||||
<ogr:intval>-33</ogr:intval>
|
||||
<ogr:floatval>0</ogr:floatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>1.4142135623731</ogr:distance>
|
||||
<ogr:angle>202.5</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4,4</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>Aaaaa</ogr:name>
|
||||
<ogr:intval>-33</ogr:intval>
|
||||
<ogr:floatval>0</ogr:floatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>3.41421356237309</ogr:distance>
|
||||
<ogr:angle>337.5</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.1">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>Aaaaa</ogr:name>
|
||||
<ogr:intval>-33</ogr:intval>
|
||||
<ogr:floatval>0</ogr:floatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>4.82842712474619</ogr:distance>
|
||||
<ogr:angle>90</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>bbaaa</ogr:name>
|
||||
<ogr:floatval>0.123</ogr:floatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,6</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>bbaaa</ogr:name>
|
||||
<ogr:floatval>0.123</ogr:floatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>1</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,6</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>bbaaa</ogr:name>
|
||||
<ogr:floatval>0.123</ogr:floatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>2</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>bbaaa</ogr:name>
|
||||
<ogr:floatval>0.123</ogr:floatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>3</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.2">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,5</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>bbaaa</ogr:name>
|
||||
<ogr:floatval>0.123</ogr:floatval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>4</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>10,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>8</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>12</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>16</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>17.4142135623731</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,-2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>6</ogr:node_index>
|
||||
<ogr:distance>19.4142135623731</ogr:distance>
|
||||
<ogr:angle>135</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,-2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>7</ogr:node_index>
|
||||
<ogr:distance>21.4142135623731</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>8</ogr:node_index>
|
||||
<ogr:distance>23.4142135623731</ogr:distance>
|
||||
<ogr:angle>315</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.3">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>7,0</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>ASDF</ogr:name>
|
||||
<ogr:intval>0</ogr:intval>
|
||||
<ogr:node_index>9</ogr:node_index>
|
||||
<ogr:distance>25.4142135623731</ogr:distance>
|
||||
<ogr:angle>225</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.4">
|
||||
<ogr:intval>120</ogr:intval>
|
||||
<ogr:floatval>-100291.43213</ogr:floatval>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>0</ogr:node_index>
|
||||
<ogr:distance>0</ogr:distance>
|
||||
<ogr:angle>99.217474411461</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>1</ogr:node_index>
|
||||
<ogr:distance>3.16227766016838</ogr:distance>
|
||||
<ogr:angle>144.217474411461</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6,-3</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>2</ogr:node_index>
|
||||
<ogr:distance>7.16227766016838</ogr:distance>
|
||||
<ogr:angle>238.282525588539</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,-1</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>3</ogr:node_index>
|
||||
<ogr:distance>11.634413615168</ogr:distance>
|
||||
<ogr:angle>328.282525588539</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>2,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>4</ogr:node_index>
|
||||
<ogr:distance>14.634413615168</ogr:distance>
|
||||
<ogr:angle>45</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
<gml:featureMember>
|
||||
<ogr:extract_nodes_polys fid="polys.5">
|
||||
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3,2</gml:coordinates></gml:Point></ogr:geometryProperty>
|
||||
<ogr:name>elim</ogr:name>
|
||||
<ogr:intval>2</ogr:intval>
|
||||
<ogr:floatval>3.33</ogr:floatval>
|
||||
<ogr:node_index>5</ogr:node_index>
|
||||
<ogr:distance>15.634413615168</ogr:distance>
|
||||
<ogr:angle>99.217474411461</ogr:angle>
|
||||
</ogr:extract_nodes_polys>
|
||||
</gml:featureMember>
|
||||
</ogr:FeatureCollection>
|
@ -870,3 +870,49 @@ tests:
|
||||
OUTPUT_LAYER:
|
||||
name: expected/single_sided_buffer_multiline_bevel.gml
|
||||
type: vector
|
||||
|
||||
|
||||
- algorithm: qgis:extractnodes
|
||||
name: Test (qgis:extractnodes)
|
||||
params:
|
||||
INPUT:
|
||||
name: multipolys.gml
|
||||
type: vector
|
||||
results:
|
||||
OUTPUT:
|
||||
name: expected/extract_nodes_multipolys.gml
|
||||
type: vector
|
||||
|
||||
- algorithm: qgis:extractnodes
|
||||
name: Test (qgis:extractnodes)
|
||||
params:
|
||||
INPUT:
|
||||
name: polys.gml
|
||||
type: vector
|
||||
results:
|
||||
OUTPUT:
|
||||
name: expected/extract_nodes_polys.gml
|
||||
type: vector
|
||||
|
||||
- algorithm: qgis:extractnodes
|
||||
name: Test (qgis:extractnodes)
|
||||
params:
|
||||
INPUT:
|
||||
name: multilines.gml
|
||||
type: vector
|
||||
results:
|
||||
OUTPUT:
|
||||
name: expected/extract_nodes_multilines.gml
|
||||
type: vector
|
||||
|
||||
- algorithm: qgis:extractnodes
|
||||
name: Test (qgis:extractnodes)
|
||||
params:
|
||||
INPUT:
|
||||
name: lines.gml
|
||||
type: vector
|
||||
results:
|
||||
OUTPUT:
|
||||
name: expected/extract_nodes_lines.gml
|
||||
type: vector
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user