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
.