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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top