requête MySQL pour milieu géographique
-
13-09-2019 - |
Question
J'ai besoin d'une requête MySQL (ou fonction) pour calculer le point médian géographique d'un nombre arbitraire de coordonnées de latitude / longitude. Je veux utiliser la méthode C (moyenne latitude / longitude) comme décrit sur cette page http: //www.geomidpoint .com / calculation.html mais ne peut pas comprendre comment convertir cela en une requête SQL. Je cherche quelque chose de la forme:
sélectionner LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) à partir de points;
Si chaque point de la table de points a la latitude et la longitude associée au format décimal. J'espère que quelqu'un soit a déjà une requête MySQL (ou fonction) qu'ils utilisent pour cela ou ont beaucoup plus d'expérience avec des calculs géospatiale que moi. Merci d'avance pour votre aide!
La solution
Méthode C semble être essentiellement une moyenne pondérée. Votre question est proche de la syntaxe MySQL. Étant donné que ce sont le format décimal.
Si vous avez des poids:
SELECT
SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
points
Ou non pondéré:
SELECT
AVG( longitude ) AS Avg_Long,
AVG( latitude ) AS Avg_Lat
FROM
points
Votre référence fait allusion à des ajustements de base, mais je ne suis pas sûr qui est nécessaire.