11 votos

¿Simple consulta PostGIS ST_Distance para dos puntos de la misma tabla de geometría?

Nota: Esta pregunta fue publicada en Stackoverflow en primero .

Tengo una tabla de geometría points_table con SRID 4326 y unos pocos puntos en ella.

Necesito encontrar una distancia entre un par de puntos (características) de esta tabla.

Me gustaría seleccionar un punto con id = X y otro punto con id = Y y luego encontrar una distancia entre ellos con ST_Distance función.

Sé cómo consultar estos dos puntos de la base de datos:

select * from points_table where id = X or id = Y;

Pero esta consulta devuelve un resultado, que no sé cómo pasar a ST_Distance porque ST_Distance toma 2 parámetros.

He intentado Select ST_Distance(select the_geom from points_table where id = X or id = Y);

Pero obviamente está mal.

¿Cómo puedo encontrar la distancia entre dos puntos de geometría (características) de una tabla?

P.D. Todos los ejemplos que he encontrado hasta ahora mostrar el uso de ST_Distance con puntos codificados en los argumentos de la función ST_Distance. No he encontrado un ejemplo, en el que ST_Distance se utilice para calcular una distancia entre dos puntos de la misma tabla.

28voto

hernan43 Puntos 566

Tienes que hacer referencia a tu tabla dos veces, dándole diferentes alias:

SELECT ST_Distance(a.geom, b.geom)
FROM points_table a, points_table b
WHERE a.id='x' AND b.id='y';

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