mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Transparently reproject source points in algs
This commit is contained in:
parent
e1eef7ed19
commit
6efcc2fe86
@ -35,6 +35,7 @@ from qgis.core import (QgsWkbTypes,
|
||||
QgsUnitTypes,
|
||||
QgsFeature,
|
||||
QgsFeatureSink,
|
||||
QgsFeatureRequest,
|
||||
QgsGeometry,
|
||||
QgsFields,
|
||||
QgsField,
|
||||
|
@ -163,7 +163,7 @@ class ServiceAreaFromPoint(QgisAlgorithm):
|
||||
|
||||
def processAlgorithm(self, parameters, context, feedback):
|
||||
network = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context, network.sourceCrs())
|
||||
strategy = self.parameterAsEnum(parameters, self.STRATEGY, context)
|
||||
travelCost = self.parameterAsDouble(parameters, self.TRAVEL_COST, context)
|
||||
|
||||
|
@ -34,6 +34,7 @@ from qgis.PyQt.QtGui import QIcon
|
||||
from qgis.core import (QgsWkbTypes,
|
||||
QgsUnitTypes,
|
||||
QgsFeature,
|
||||
QgsFeatureRequest,
|
||||
QgsFeatureSink,
|
||||
QgsGeometry,
|
||||
QgsFields,
|
||||
@ -158,7 +159,7 @@ class ShortestPathLayerToPoint(QgisAlgorithm):
|
||||
def processAlgorithm(self, parameters, context, feedback):
|
||||
network = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
startPoints = self.parameterAsSource(parameters, self.START_POINTS, context)
|
||||
endPoint = self.parameterAsPoint(parameters, self.END_POINT, context)
|
||||
endPoint = self.parameterAsPoint(parameters, self.END_POINT, context, network.sourceCrs())
|
||||
strategy = self.parameterAsEnum(parameters, self.STRATEGY, context)
|
||||
|
||||
directionFieldName = self.parameterAsString(parameters, self.DIRECTION_FIELD, context)
|
||||
|
@ -157,7 +157,7 @@ class ShortestPathPointToLayer(QgisAlgorithm):
|
||||
|
||||
def processAlgorithm(self, parameters, context, feedback):
|
||||
network = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context, network.sourceCrs())
|
||||
endPoints = self.parameterAsSource(parameters, self.END_POINTS, context)
|
||||
strategy = self.parameterAsEnum(parameters, self.STRATEGY, context)
|
||||
|
||||
|
@ -160,8 +160,8 @@ class ShortestPathPointToPoint(QgisAlgorithm):
|
||||
|
||||
def processAlgorithm(self, parameters, context, feedback):
|
||||
network = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context)
|
||||
endPoint = self.parameterAsPoint(parameters, self.END_POINT, context)
|
||||
startPoint = self.parameterAsPoint(parameters, self.START_POINT, context, network.sourceCrs())
|
||||
endPoint = self.parameterAsPoint(parameters, self.END_POINT, context, network.sourceCrs())
|
||||
strategy = self.parameterAsEnum(parameters, self.STRATEGY, context)
|
||||
|
||||
directionFieldName = self.parameterAsString(parameters, self.DIRECTION_FIELD, context)
|
||||
|
@ -28,6 +28,9 @@ __revision__ = '$Format:%H$'
|
||||
|
||||
import os
|
||||
|
||||
from qgis.core import (QgsProject,
|
||||
QgsReferencedPointXY,
|
||||
QgsPointXY)
|
||||
from qgis.PyQt import uic
|
||||
|
||||
from qgis.utils import iface
|
||||
@ -48,6 +51,7 @@ class PointSelectionPanel(BASE, WIDGET):
|
||||
self.btnSelect.clicked.connect(self.selectOnCanvas)
|
||||
|
||||
self.dialog = dialog
|
||||
self.crs = QgsProject.instance().crs()
|
||||
|
||||
if iface is not None:
|
||||
canvas = iface.mapCanvas()
|
||||
@ -76,6 +80,7 @@ class PointSelectionPanel(BASE, WIDGET):
|
||||
|
||||
def updatePoint(self, point, button):
|
||||
s = '{},{}'.format(point.x(), point.y())
|
||||
self.crs = QgsProject.instance().crs()
|
||||
|
||||
self.leText.setText(s)
|
||||
canvas = iface.mapCanvas()
|
||||
@ -86,7 +91,15 @@ class PointSelectionPanel(BASE, WIDGET):
|
||||
|
||||
def getValue(self):
|
||||
if str(self.leText.text()).strip() != '':
|
||||
return str(self.leText.text())
|
||||
try:
|
||||
parts = self.leText.text().split(',')
|
||||
parts = [float(p) for p in parts]
|
||||
r = QgsReferencedPointXY(QgsPointXY(parts[0], parts[1]),
|
||||
self.crs)
|
||||
return r
|
||||
|
||||
except:
|
||||
return str(self.leText.text())
|
||||
else:
|
||||
return None
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user