Tengo una base de datos MySQL y 2 tablas, digamos clientes y escuelas. Ahora cada tabla tiene columnas de latitud y longitud. Y necesito hacer un SELECCIONAR, por ejemplo, de la segunda tabla, donde las escuelas se encuentran en un radio dado de un registro de la primera tabla. Los cálculos deben hacerse en función de la latitud y la longitud. PD: Estoy usando PHP.Obtener resultados de mysql basado en la longitud de latitud
Respuesta
Se puede calcular una distancia usando un Spherical law of cosines:
SELECT DEGREES(ACOS(SIN(RADIANS(clients.latitude)) * SIN(RADIANS(schools.latitude)) +
COS(RADIANS(clients.latitude)) * COS(RADIANS(schools.latitude))
* COS(RADIANS(clients.longitude
– schools.longitude))))
* 60 * 1.1515 * 1.609344 AS distance
FROM clients, schools HAVING distance < $radius
RADIANS(X) - grados a radianes
ACOS(X) - el arco coseno de X, es decir, el valor cuyo coseno es X
DEGREES(X) - radianes a grados
60 - minutos en un grado
1.1515 - millas en un nautical mile
1.609344 - kilómetros en una milla
Gracias, intentaré ahora y acepto si funciona. – Centurion
Entonces, si mi radio está en kilómetros, ¿la consulta será como la que escribe o debería cambiarla? gracias – Centurion
Mysql da un error: columna desconocida 'clients.longitude-schools.longitude' en 'lista de campo' ..., ¿cuál es el significado de '-' firmar aquí? – Centurion
- 1. tipo de datos a la tienda longitud/latitud en MySQL
- 2. Obtener latitud/longitud desde la dirección
- 3. configuración de la tabla de latitud y longitud de MySQL
- 4. Obtener código postal de latitud y longitud?
- 5. Obtener el país de latitud longitud
- 6. Obtener latitud y longitud de marcador (onclick)
- 7. Obtener Latitud Longitud desde una dirección C#
- 8. ¿Cómo obtener la longitud y la latitud de cualquier dirección?
- 9. ¿Cómo importar datos de latitud/longitud correctamente en MySQL?
- 10. Longitud y latitud desde la dirección IP
- 11. obtener la zona horaria utilizando latitud y longitud?
- 12. ¿Cómo obtener ubicación (latitud y longitud) en variable en iOS?
- 13. obtener la latitud y longitud usando código postal
- 14. Radio de múltiples puntos de latitud/longitud
- 15. transformada latitud longitud en metros
- 16. PostgreSQL latitud longitud consulta
- 17. Mapas de Google HTML5 clic para obtener latitud, longitud
- 18. Widget Latitud/Longitud Qt4?
- 19. Obtener altitud por longitud y latitud en Android
- 20. punto de longitud de latitud FI en php longitud latitud inicial, distancia y rodamiento
- 21. ¿Cómo obtener la longitud y la latitud de la ubicación actual en iOS 4.0/4.2?
- 22. Calcular latitud y longitud teniendo metros de distancia desde otro punto de latitud/longitud
- 23. Mapa de calor de latitud y longitud
- 24. Corregir correctamente los valores de latitud y longitud en Lucene
- 25. Obtener latitud y longitud desde un archivo GeoTIFF
- 26. Consulta SQL para realizar una búsqueda de radio basada en la longitud de la latitud
- 27. MKMapView Latitud y longitud Coordenadas
- 28. Cómo validar latitud y longitud
- 29. ¿Cómo marco las coordenadas de latitud/longitud en la pantalla?
- 30. Conversión de longitud \ latitud a coordenadas cartesianas
Además de la respuesta de Piskvor, este tutorial es bastante bueno: [Geo Distance Search with MySQL] (http://www.scribd.com/doc/2569355/Geo-Distance- Search-with-MySQL), aunque encontré que la página no se cargaba muy bien. Como alternativa, la presentación de PowerPoint se puede encontrar [aquí] (http://www.mysqlconf.com/mysql2008/public/schedule/detail/347). – Mike