MySQL-Abfrage für geografischen Mittelpunkt
-
13-09-2019 - |
Frage
Ich brauche eine MySQL-Abfrage (oder Funktion), um den geographischen Mittelpunkt einer beliebigen Anzahl von Breiten- / Längenkoordinaten zu berechnen. Ich mag Methode C (Durchschnittliche Breite / Länge), wie auf dieser Seite http: //www.geomidpoint .com / calculation.html kann aber nicht herausfinden, wie diese Abfrage in eine SQL zu konvertieren. Ich suche nach etwas von der Form:
wählen LATITUDE_AVG_FORMULA (points.latitude), LONGITUDE_AVG_FORMULA (points.longitude) von Punkten;
Wo jeder Punkt in der Punktetabelle hat als assoziierte Breite und Länge im Dezimalformat. Ich hoffe, dass jemand entweder bereits eine MySQL-Abfrage (oder Funktion) sie dafür verwenden oder viel mehr Erfahrung mit geospacial Berechnungen haben als ich. Vielen Dank im Voraus für Ihre Hilfe!
Lösung
Methode C erscheint im Grunde ein gewichteter Durchschnitt. Ihre Frage in der Nähe von MySQL-Syntax. Da diese Dezimalformat.
Wenn Sie Gewichte:
SELECT
SUM( longitude * weight ) / SUM( weight ) AS Avg_Long,
SUM( latitude * weight ) / SUM( weight ) AS Avg_Lat
FROM
points
oder ungewichteten:
SELECT
AVG( longitude ) AS Avg_Long,
AVG( latitude ) AS Avg_Lat
FROM
points
Ihre Referenz anspielt Anpassung zur Grundlinie, aber ich bin nicht sicher, dass benötigt wird.