consulta MySQL para el punto medio geográfico
-
13-09-2019 - |
Pregunta
Necesito una consulta MySQL (o función) para calcular el punto medio geográfico de un número arbitrario de latitud / longitud coordina. Quiero usar el Método C (latitud media / longitud) como se describe en esta página http: //www.geomidpoint .com / calculation.html pero no puede encontrar la manera de convertir esto en una consulta SQL. Busco algo de la forma:
seleccione LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) a partir de puntos;
Donde cada punto en la tabla de puntos tiene como latitud y longitud asociada en formato decimal. Estoy esperando que alguien, o bien ya tiene una consulta de MySQL (o función) que están utilizando para esto o tienen mucha más experiencia con los cálculos geoespaciales que yo. Gracias de antemano por su ayuda!
Solución
Método C parece ser básicamente un promedio ponderado. Su pregunta está cerca de la sintaxis de MySQL. Teniendo en cuenta que estos son formato decimal.
Si usted tiene pesos:
SELECT
SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
points
O no ponderado:
SELECT
AVG( longitude ) AS Avg_Long,
AVG( latitude ) AS Avg_Lat
FROM
points
Sus alude a la línea de base de referencia ajustes, pero no estoy seguro de que se necesita.