Cualquiera que pueda ayudar. Solo quiero agregar dirección (Rumbo: es decir, N 25 35 E) y Distancia (Longitud: 125 metros) como mi nuevo campo en datos de línea / polilínea. ¿Hay un complemento para generar estos campos? Traté de usar "exportar / agregar columnas de geometría" en los datos de mi línea, pero solo se agregó el valor "Longitud".
18
Respuestas:
Puede calcular la demora en la Calculadora de campo en QGIS. Esto funciona en coordenadas UTM (métricas) a distancias pequeñas (cientos de km), pero se necesitaría algo más sofisticado para grandes distancias o para grados decimales.
Abra la tabla de atributos para su capa de línea, cambie la edición y haga clic en el botón Calculadora de campo para abrir el cuadro de diálogo:
Cree un nuevo campo como decimal con 1 o 2 de precisión.
Pegue este código en el cuadro "Expresión" y haga clic en "Aceptar":
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))
La primera parte calcula la tangente inversa de las diferencias x e y y la convierte a grados (180 / pi). La segunda parte agrega 180 o 360 a la figura resultante para dar un rumbo de 0-360 °.
fuente
No necesitas un complemento. Todo está en la clase QgsPoint de PyQGIS
Si examina el contenido de una clase de punto QGIS con la función incorporada de Python dir () en la consola de Python.
Puede ver que hay funciones de acimut y sqrDist y después de algunos intentos:
El problema
Entonces en la consola de Python
ahora xy contiene todos los nodos (puntos) de la línea
Usando todos los puntos de nodo de la línea:
1) punto acimutal i al punto i + 1 (+/- 180 °) (nodos de una línea)
2) distancia euclidiana entre el punto i y el punto i + 1
Después, no es muy difícil agregar estos valores a la tabla de atributos.
Utilizo esta técnica para analizar los lineamientos (geología) con matplotlib y el complemento Script Runner
fuente
La solución proporcionada por @Simbamangu es bastante efectiva pero no cubre todos los casos. Por ejemplo, la aplicación de la fórmula con un desplazamiento horizontal NULARÁ el resultado, por lo que debe usar esta fórmula en la Calculadora de campo de QGIS
fuente