5 Stimmen

Wie berechne ich die Fläche eines Polygons in einer MySQL-Datenbank, wenn die Punkte des Polygons Längengrade sind?

Wie kann ich die Fläche eines in einer MySql-Datenbank gespeicherten Polygons berechnen? Die Punkte des Polygons sind Längengrade. Grad und Minuten scheinen also ein Problem darzustellen.

Ich habe es versucht:

SELECT AREA( my_polygon ) 
FROM  `my_table` 
WHERE name =  'Newport'

Da es sich bei den Punkten um Lats handelt, erhalte ich seltsame Ergebnisse.

(Ich bin nicht in der Lage, zu Postgre zu wechseln). Gibt es eine Möglichkeit, dies in MySQL zu tun? Ich möchte die Ergebnisse in Quadratmetern oder Quadratkilometern oder Quadratmeilen erhalten - jede dieser Angaben wäre gut.

2voto

duffymo Punkte 298898

Sie müssen diese Lats und Lons in ein geeigneteres Koordinatensystem umwandeln.

Da die Erde eine Kugel ist, geht es darum, eine Fläche in Kugelkoordinaten zu berechnen.

In der Dokumentation heißt es, dass die MySQL Funktion "AREA" (Bereich) nimmt ein Polygon als Eingabe. Ich würde sagen, dass Sie Ihre Breiten-/Längenkoordinaten in äquivalente Oberflächenkoordinaten (x, y) mit den richtigen Einheiten (z. B. Meilen) umwandeln sollten, wenn Sie die Fläche als Quadratmeilen angeben möchten. Übergeben Sie diese dann an die AREA-Funktion.

Dieser Link deutet darauf hin, dass jemand anderes dieses Problem hatte und es gelöst hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X