8 votos

Cómo comprobar si los puntos están dentro de un sector circular de usar PostGIS?

Quiero llegar a las estrellas dentro de la región negra como se muestra arriba. Para encontrar este tengo el centro del círculo (lat, long), el radio y el ángulo de la región (45 grados).

Soy nuevo en postgres. He trabajado en el código para comprobar si existen puntos dentro del círculo de un radio determinado.

Cómo puedo encontrar los puntos dentro de esta región negra?

enter image description here

9voto

Uso ST_Azimuth para obtener el ángulo desde el punto de origen hasta el punto de interés. He utilizado simple geometry puntos de aquí ya no tenemos datos de la muestra, pero probablemente usted está trabajando con geography. El principio es el mismo:

WITH points(star) AS (VALUES
  (point(0.5, 1)),
  (point(0.2,0.2)),
  (point(0.2, 1)),
  (point(0.8, 0.2))
)
SELECT star 
FROM points 
WHERE degrees(ST_Azimuth( point(0,0)::geometry, star::geometry )) 
      BETWEEN 0 AND 40;
  star   
---------
 (0.5,1)
 (0.2,1)
(2 rows)

También puede limitar la distancia. Aquí es cómo conseguir la distancia y el azimut de la tabla "points" que contiene un point-escribió la columna "star" uso de ST_Distance demasiado:

SELECT
  star, 
  degrees(ST_Azimuth( point(0,0)::geometry, star::geometry )) AS azimuth_deg,
  ST_Distance( point(0,0)::geometry, star::geometry ) AS distance
FROM points;

Puede mover los en WHERE cláusula y el filtro en ellos, sin embargo, te gusta.

Si es posible trabajar directamente en radianes, en lugar de convertir a grados.

Si usted está trabajando con los puntos de la tierra, considere el uso de la geography en lugar del tipo de geometry. Ambas funciones aquí mencionadas apoyo geography.

1voto

NilObject Puntos 7874

Una circular de la cuña en un espacio esférico es sólo un triángulo. Usted puede mirar en el uso de la geografía del tipo de este. Sin embargo, la definición de la "radio" en ese tipo podría ser difícil dado que es probable que desean trabajar en unidades angulares, no en unidades métricas. Te sugiero que si usted está haciendo la astronomía usted encontrará que http://pgsphere.projects.pgfoundry.org adapte a sus casos de uso más de cerca ya que es lo que fue construido.

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