8 votos

Más cercano de cálculo vecino en PostGIS

Estoy aprendiendo a usar PostGIS y bases de datos espaciales para el análisis. Lo que estoy tratando de hacer es realizar un cálculo para obtener la distancia a la que el más cercano de polígonos en un archivo, utilizando el borde de cálculo, en lugar de los vértices.

El uso de esta respuesta de Paul Ramsey a una pregunta similar:

CREAR TABLA mytable_distances COMO SELECCIONE una.id., b.id, ST_Distance(un.geom::geografía, b.geom::geografía) como la distancia DE mytable una, mytable b;

Estoy tratando de aplicarlo a mi base de datos espaciales. No entiendo la estructura de esta consulta, aunque. Creo CREATE TABLE mytable_distances AS crea una tabla para almacenar el resultado, pero después de esta parte estoy perdido. Son a y b nombres de columna? Si es así, ¿por qué habría de especificar dos columnas para calcular esto?

Mi tabla se llama TestArea y he experimentado con algunas preguntas básicas con éxito:

SELECT 
  "TestArea".hgt
FROM 
  public."TestArea"
WHERE
  "TestArea".area > 100

La estructura de la base de datos en PGAdmin III es la siguiente, con mi tabla se llama TestArea. No estoy seguro de lo que el vecino más cercano de cálculo debe verse como el uso de mi encabezados de columna (todos estos objetos son polígonos).

enter image description here

11voto

hernan43 Puntos 566

a y b son alias de la tabla de nombres para la misma tabla. Este es, efectivamente, una T1 CROSS JOIN T2 en el DB-hablar. Esto permite que un auto se unen para decir "¿cómo cerrar una parte es otro" en una sola tabla.

SELECT 
  a.hgt AS a_hgt,
  b.hgt AS b_hgt,
  ST_Distance(a.the_geom, b.the_geom) AS distance_between_a_and_b
FROM 
  public."TestArea" AS a, public."TestArea" AS b
WHERE
  a.gid < b.gid AND a.area > 100 AND b.area > 100

Es posible que desee agregar otra WHERE cláusula de limitar el número de filas, por ejemplo, agregar AND ST_Distance(a.the_geom, b.the_geom) < 1000.0 , de modo que todas las distancias están a menos de un kilómetro (si usted tiene proyectadas UTM).

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