Determinar si una coordenada está en el radio de otra
-
19-09-2019 - |
Pregunta
Vamos a decir que tengo una tabla de filas que contienen las coordenadas.
¿Cuál sería la mejor manera de tirar sólo las filas de coordenadas que se encuentran en el radio de otro de coordenadas?
Para simplificar mi pregunta, estoy dando el siguiente ejemplo:
Table like:
Columns: Latitude, Longitude.
Row1: 23.44444 24.55555
Row2: 32.44444 28.22222
Row3: 35.11111 32.12345
En una sentencia SQL, ¿cómo puedo obtener las filas de coordenadas que se encuentran en el radio de Row3 por ejemplo?
Solución
posterior muestra cómo hacer esto en SQL Server.
Y aquí es cómo hacerlo en MySQL:
SELECT ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) +
COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) *
PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance
FROM members
HAVING distance<='10' ORDER BY distance ASC
Otros consejos
parece que la fórmula de la distancia es:
D = 60* 1.1515 * acos (sin(pi*y/180) * sin(pi*Y/180) +
cos(pi*y/180) * cos(pi*Y/180) * cos((z-Z) *pi / 180)
) * 180 / pi)
donde Y y Z - son puntos de cada fila whant para poner a prueba, e Y y Z - son puntos de ejemplo fila
.lo que podría hacer tal cosa:
- seleccionar cada fila en la tabla y obtener su
lon
ylat
. - , cambiando
$lon
y$lat
a punto 1 formulario de datos.
No sé cómo hacer esto en el acceso. Pero de esta manera es tan estrecho como lenta.
¿Qué quiere decir por la radio de? ¿Quieres pasar en una distancia, por ejemplo de 5 millas, y encontrar todas las filas a 5 millas de la fila x?
Mira esto si es así http: // www. microsoft.com/sqlserver/2008/en/us/spatial-data.aspx