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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top