7 votos

¿Encontrar puntos de interés cerca de un camino?

Imagina una tabla de puntos de interés junto con la latitud y la longitud. El usuario identifica dos de estos puntos. Quiero hacer lo siguiente:

  1. Calcula una trayectoria de círculo máximo entre estos puntos
  2. Encuentre todos los PDI que se encuentran a menos de "n" millas de la ruta del gran círculo del paso 1.

Soy totalmente nuevo en estas cosas, ¿cuál podría ser una buena herramienta para lograr esto? ¿Y cómo lo resolverías con esa herramienta?

1 votos

Gran pregunta tutorial que muestra las capacidades espaciales de postgis +1

4voto

NilObject Puntos 7874

Una línea, asumiendo que los puntos POI están almacenados en una columna de "geografía", usted suministra los ids de los dos puntos y el radio de búsqueda en metros:

WITH line AS (
  SELECT ST_MakeLine(p.geog::geometry, q.geog::geometry)::geography AS geog
  FROM pois p, pois q
  WHERE p.id = :id1 and q.id = :id2
)
SELECT p.name, p.id
FROM pois p
JOIN line
ON ST_DWithin(p.geog, line.geog, :radius);

La única complicación es que los puntos geográficos tienen que ser convertidos en geometría para acceder a la función de construcción de líneas, y la línea tiene que ser convertida de nuevo en geografía para su uso en la consulta de distancia.

0 votos

Paul, ¿te importaría explicar un poco la consulta? No nos enseñaron SQL en la universidad y la consulta está por encima de mi nivel de comprensión actual.

1 votos

El bloque "CON" saca los dos puntos de interés y crea una línea a partir de ellos. Así que ahora tiene una línea en una relación llamada "línea". El siguiente bloque une la relación "línea" con la tabla pois, utilizando la condición de que sólo los puntos dentro del radio estarán en la relación de salida final, que es la condición que buscaba el autor de la pregunta: "sólo los puntos dentro de N metros de la línea entre los puntos A y B"

2 votos

Leer sobre las consultas "CON" hará que tu vida sea más brillante y feliz. postgresql.org/docs/current/static/queries-with.html

-2voto

Michelle Puntos 11

ArcMap tiene una herramienta de selección de características dentro de un radio determinado de otra característica. Está en el cuadro de diálogo Seleccionar por ubicación. No me sorprendería que otros programas como QGIS tengan una funcionalidad similar.

Sólo tienes que decirle al software la distancia y partir de ahí.

0 votos

Utilizar el software como grandes cajas negras no ayuda a entender lo que se está haciendo. "Sólo decirle al software que haga algo" para ti es una gran trampa produciendo algo que no sabes si es correcto o no. Sí, la cuestión aquí es trivial, pero imo de esta manera usted hace que el software haga lo que usted quiere, en lugar de hacer algo que el software es capaz de hacer.

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