1 votos

Distancia entre dos puntos en QGIS 3.4.7 y Python 3.7

Estoy bajo el 2154 CRS (RGF 93). Quiero calcular la distancia en metros entre dos puntos conociendo sus coordenadas.

Consideremos dos puntos : A(474828,85, 6756169,31) y B(874895,75, 6756159,5) Si mido la distancia manualmente obtengo 69,6m.

Quiero obtener este resultado a través de la consola de Python. He leído dos formas de hacerlo: QGIS Python Distancia entre puntos

Sin embargo, falla en mi caso.

>>>point1 = QgsPoint(474828.85, 6756169.31)
>>>point2 = QgsPoint(874895.75, 6756159.5)
>>>distance = QgsDistanceArea()

Esto está bien, pero la siguiente línea envía un mensaje de error:

>>>m = distance.measureLine(point1, point2)
Traceback (most recent call last):
  File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
TypeError: QgsDistanceArea.measureLine(): arguments did not match any overloaded call:
  overload 1: argument 1 has unexpected type 'QgsPoint'
  overload 2: argument 1 has unexpected type 'QgsPoint'

El otro método presentado en el enlace también falla: enter image description here Mi pregunta es : "¿Cómo puedo obtener la distancia dada en metros?"

1voto

Hammouda Elbez Puntos 1

Este método espera el punto en latitud/longitud.

https://qgis.org/api/classQgsDistanceArea.html

Sus coordenadas están proyectadas, por lo que sólo hay que hacer

point1 = QgsPoint(474828.85, 6756169.31)
point2 = QgsPoint(874895.75, 6756159.5)
distance = point1.distance(point2)

https://qgis.org/api/classQgsPoint.html

0voto

Krishna Puntos 2422

La API dice que measureLine espera QgsPointXY. https://qgis.org/api/classQgsDistanceArea.html#a732e4348b96388df6255f981a2bc0ca4

point1 = QgsPointXY(474828.85, 6756169.31)
point2 = QgsPointXY(874895.75, 6756159.5)
distance = QgsDistanceArea()
m = distance.measureLine(point1, point2)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X