mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-04 00:06:46 -05:00
[FEATURE][processing] Remove duplicate create points along lines script
This functionality is duplicated by the PointsAlongGeometry algorithm Keep the algorithm version, since it has unit tests and supports things like progress reports. (marked as feature for inclusion in release notes)
This commit is contained in:
parent
d4c38f9277
commit
6bb4934907
@ -55,6 +55,7 @@ class PointsAlongGeometry(GeoAlgorithm):
|
||||
def defineCharacteristics(self):
|
||||
self.name, self.i18n_name = self.trAlgorithm('Points along lines')
|
||||
self.group, self.i18n_group = self.trAlgorithm('Vector geometry tools')
|
||||
self.tags = self.tr('create,interpolate,points,lines')
|
||||
|
||||
self.addParameter(ParameterVector(self.INPUT,
|
||||
self.tr('Input layer'),
|
||||
|
||||
@ -1,45 +0,0 @@
|
||||
##Vector geometry tools=group
|
||||
##Lines=vector
|
||||
##Distance=number 1
|
||||
##Startpoint=number 0
|
||||
##Endpoint=number 0
|
||||
##output=output vector
|
||||
|
||||
from qgis.PyQt.QtCore import QVariant
|
||||
from qgis.core import Qgis, QgsFeature, QgsField, QgsWkbTypes
|
||||
from processing.tools.vector import VectorWriter
|
||||
|
||||
|
||||
def create_points(feat):
|
||||
geom = feat.geometry()
|
||||
length = geom.length()
|
||||
currentdistance = 0
|
||||
|
||||
if Endpoint > 0:
|
||||
length = Endpoint
|
||||
|
||||
out = QgsFeature()
|
||||
|
||||
while Startpoint + currentdistance <= length:
|
||||
point = geom.interpolate(Startpoint + currentdistance)
|
||||
currentdistance = currentdistance + Distance
|
||||
out.setGeometry(point)
|
||||
attrs = feat.attributes()
|
||||
attrs.append(currentdistance)
|
||||
out.setAttributes(attrs)
|
||||
writer.addFeature(out)
|
||||
|
||||
|
||||
layer = processing.getObject(Lines)
|
||||
fields = layer.dataProvider().fields()
|
||||
fields.append(QgsField('Distance', QVariant.Double))
|
||||
writer = VectorWriter(output, None, fields, QgsWkbTypes.Point,
|
||||
layer.crs())
|
||||
|
||||
feats = processing.features(layer)
|
||||
nFeat = len(feats)
|
||||
for i, feat in enumerate(feats):
|
||||
progress.setPercentage(int(100 * i / nFeat))
|
||||
create_points(feat)
|
||||
|
||||
del writer
|
||||
Loading…
x
Reference in New Issue
Block a user