En la nueva versión de gvSIG Desktop, la 2.7, se han incluido tres herramientas que permiten crear geometrías de líneas y polígonos mediante rumbo y distancia. Para ello se han incluido tres funciones nuevas en el gestor de expresiones:
- PointByAngle(): Permite insertar nuevos puntos de la geometría mediante un ángulo y una distancia. El ángulo sería antihorario, siendo el origen 0º en dirección este. La fórmula sería:
PointByAngle(geometría, distancia, ángulo)
donde “geometría” sería el punto desde el cual se insertaría la nueva línea (siendo “$p0” el último punto insertado, “$p1” el penúltimo…), “distancia” sería la longitud del segmento en las unidades de la vista, y “ángulo” sería el ángulo en grados sexagesimales. Por ejemplo PointByAngle($p0,10, 10) sería como se muestra a continuación, 10 metros con un ángulo de 10º sobre la horizontal.

- $ADI(): Permite insertar nuevos puntos de la geometría mediante un azimut y una distancia, desde el último punto, indicando si es hacia el Norte o Sur, y hacia el Este u Oeste. La fórmula sería:
$ADI(‘N o S-ángulo sexagesimal,E o W’, distancia)
donde el primer parámetro indica si es hacia el Norte o hacia el Sur, después se indica los grados sexagesimales, separando grados, minutos y segundos por “-”, posteriormente si es hacia el Este o hacia el Oeste, y finalmente la distancia. Por ejemplo $ADI(‘N-11–3-E’, 10) sería 10 metros de segmento, en sentido noreste, 11º 3’ en sentido horario desde el Norte.

- PointByAzimuthAndDistance(): Permite insertar nuevos puntos de la geometría mediante un azimut y una distancia, indicando el origen, si es hacia el Norte o Sur, y hacia el Este u Oeste. La fórmula sería:
PointByAzimuthAndDistance(origen, azimut, distancia)
donde el primer parámetro indica el origen (por ejemplo un punto con coordenadas, el último punto insertado -con $p0-…), el segundo si es hacia el Norte o hacia el Sur, después se indica los grados sexagesimales, separando grados, minutos y segundos por “-”, posteriormente si es hacia el Este o hacia el Oeste, y finalmente la distancia. Por ejemplo PointByAzimuthAndDistance($p0, ‘N-90–0–W‘, 10) sería, desde el último punto insertado, 10 metros de segmento, en sentido noroeste, 90º en sentido antihorario desde el Norte, por lo tanto totalmente hacia el oeste.
En el siguiente vídeo se muestra el funcionamiento de todas estas funciones:



