Para determinar la distancia entre dos puntos de coordenadas conocidas empleando la base de datos PostGIS, vamos a seguir el siguiente ejemplo elemental.

Dadas dos localizaciones A y B cuyas coordenadas, expresadas en el S.C. ETRS89 UTM 30N (EPSG 25830) son:

Vamos a realizar la siguiente consulta, en la que como podemos observar que nos devuelve la distancia euclidiana entre ambos puntos expresada en las unidades del S.C. de ambas capas, esto es, en metros.

SELECT ST_DISTANCE (ST_GEOMFROMTEXT (‘POINT(300000 4500000)’,25830),ST_GEOMFROMTEXT (‘POINT(300100 4500000)’,25830));

Pero para comprenderlo mejor, analicemos esta consulta en detalle.

Como toda consulta, la sentencia se inicia empleando la expresión SELECT(). A continuación, debemos expresar el argumento que pretendemos obtener de dicha consulta.

Dado que nuestra intención es obtener la distancia entre dos geometrías, en este caso dos puntos cuyas coordenadas son conocidas, emplearemos el comando ST_DISTANCE(). Si accedemos al centro de documentación de PostGIS observamos el conjunto de argumentos que debemos aportar para emplear esta función, así como la descripción en detalle de la misma.

ST_Distance ( geometría g1 , geometría g2 );

Esta función nos devolverá la distancia mínima 2D entre los dos puntos en las unidades proyectadas del Sistema de Referencia de las capas.

Los argumentos que debemos aportar para la función ST_DISTANCE() son las geometrías de ambas entidades separamos por medio de una coma.

Finalmente, para introducir los argumentos que van a especificar ambas geometrías vamos a emplear la función ST_GEOMFROMTEXT(). Esta función permite crear objetos espaciales PostGIS convirtiendo una geometría expresada en el formato WKT a un formato BLOB (Objeto Binario) que es el formato en el que PostGIS y PostgreSQL reconocen e introduce la geometría de las entidades espaciales dentro de una base de datos.

Esta función espacial, que se incluye al activar la extensión PostGIS sobre nuestra base de datos, cuenta a su vez con dos argumentos, por un lado, la geometría de la entidad vectorial expresada en formato WKT y por otro el Sistema de Referencia en el cual están expresadas las coordenadas de ambas entidades.

ST_GeomFromText (WKT,SRID);

• El argumento WKT, al tratarse de un texto debe ir contenido entre comillas sencillas.
• El argumento SRID al tratarse de un número entero no precisa ser contenido entre comillas y refleja el código EPSG del Sistema de Referencia de Coordenadas.

Para más información de cómo expresar la geometría de una entidad vectorial por medio del formato WKT, podéis consultar nuestra entrada “Crear capas vectoriales a partir de archivos de texto en formato WKT”.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)

Cargando…

Formación de calidad impartida por profesionales