mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Add v.edit algorithm
This commit is contained in:
parent
903a804bc3
commit
538ad69768
24
python/plugins/processing/algs/grass7/description/v.edit.txt
Normal file
24
python/plugins/processing/algs/grass7/description/v.edit.txt
Normal file
@ -0,0 +1,24 @@
|
||||
v.edit
|
||||
Edits a vector map, allows adding, deleting and modifying selected vector features.
|
||||
Vector (v.*)
|
||||
ParameterVector|map|Name of vector layer|-1|False
|
||||
ParameterSelection|tool|Tool|add;delete;copy;move;flip;merge;break;snap;connect;vertexadd;vertexdel;vertexmove;zbulk|0
|
||||
ParameterString|input_txt|Inline input for add tool|None|True|True
|
||||
ParameterFile|input|ASCII file for add tool|False|True
|
||||
ParameterString|move|Difference in x,y,z direction for moving feature or vertex|None|False|True
|
||||
ParameterString|threshold|Threshold distance (coords,snap,query)|None|False|True
|
||||
ParameterString|ids|Feature ids|None|False|True
|
||||
ParameterString|coords|List of point coordinates|None|False|True
|
||||
ParameterString|bbox|Bounding box for selecting features|None|False|True
|
||||
ParameterString|polygon|Polygon for selecting features|None|False|True
|
||||
ParameterString|where|WHERE conditions of SQL statement without 'where' keyword|None|True|True
|
||||
ParameterString|query|Query tool (in length,dangle)|None|False|True
|
||||
ParameterVector|bgmap|Name of background vector map|-1|True
|
||||
ParameterString|snap|Snap added or modified features in the given threshold to the nearest existing feature (Options: no,node,vertex)|None|False|True
|
||||
ParameterString|zbulk|Starting value and step for z bulk-labeling. Pair: value,step (e.g. 1100,10)|None|False|True
|
||||
ParameterBoolean|-r|Reverse selection|False
|
||||
ParameterBoolean|-c|Close added boundaries (using threshold distance)|False
|
||||
ParameterBoolean|-n|Do not expect header of input data|False
|
||||
ParameterBoolean|-t|Do not build topology|False
|
||||
ParameterBoolean|-1|Modify only first found feature in bounding box|False
|
||||
OutputVector|output|Edited
|
74
python/plugins/processing/algs/grass7/ext/v_edit.py
Normal file
74
python/plugins/processing/algs/grass7/ext/v_edit.py
Normal file
@ -0,0 +1,74 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
***************************************************************************
|
||||
v_edit.py
|
||||
---------
|
||||
Date : March 2016
|
||||
Copyright : (C) 2016 by Médéric Ribreux
|
||||
Email : medspx at medspx dot fr
|
||||
***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************
|
||||
"""
|
||||
|
||||
__author__ = 'Médéric Ribreux'
|
||||
__date__ = 'March 2016'
|
||||
__copyright__ = '(C) 2016, Médéric Ribreux'
|
||||
|
||||
# This will get replaced with a git SHA1 when you do a git archive
|
||||
|
||||
__revision__ = '$Format:%H$'
|
||||
|
||||
|
||||
import os
|
||||
|
||||
|
||||
def checkParameterValuesBeforeExecuting(alg):
|
||||
""" Verify if we have the right parameters """
|
||||
if alg.getParameterValue('input_txt') and alg.getParameterValue(u'input'):
|
||||
return alg.tr("You need to set either an input ASCII file or inline data!")
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def processCommand(alg):
|
||||
# handle inline add data
|
||||
input_txt = alg.getParameterFromName('input_txt')
|
||||
inputParameter = alg.getParameterFromName('input')
|
||||
if input_txt.value:
|
||||
# Creates a temporary txt file
|
||||
ruleFile = alg.getTempFilename()
|
||||
|
||||
# Inject rules into temporary txt file
|
||||
with open(ruleFile, "w") as tempRules:
|
||||
tempRules.write(input_txt.value)
|
||||
inputParameter.value = ruleFile
|
||||
alg.parameters.remove(input_txt)
|
||||
|
||||
# exclude output for from_output
|
||||
output = alg.getOutputFromName('output')
|
||||
alg.removeOutputFromName('output')
|
||||
|
||||
alg.processCommand()
|
||||
alg.addOutput(output)
|
||||
if input_txt.value:
|
||||
inputParameter.value = None
|
||||
alg.addParameter(input_txt)
|
||||
|
||||
|
||||
def processOutputs(alg):
|
||||
# We need to add the from layer to outputs:
|
||||
out = alg.exportedLayers[alg.getParameterValue('map')]
|
||||
from_out = alg.getOutputValue('output')
|
||||
command = u"v.out.ogr -s -e input={} output=\"{}\" format=ESRI_Shapefile output_layer={}".format(
|
||||
out, os.path.dirname(from_out),
|
||||
os.path.splitext(os.path.basename(from_out))[0]
|
||||
)
|
||||
alg.commands.append(command)
|
||||
alg.outputCommands.append(command)
|
Loading…
x
Reference in New Issue
Block a user