GeoDjango, welche SRID für die PointField-Schnittstelle mit Google Maps V3 API?

8

Ich bin ein bisschen verwirrt, was sollte ich meinen SRID-Wert in meinem GeoDjango PointField setzen, um im Zusammenhang mit Adressen, die über Google Maps API geokodiert werden, in Koordinaten und Entfernungen, die über Django-Postgis abgefragt werden, genau zu bleiben?

Ich bekomme gemischte Meinungen, lese die Fäden um das Netz und stoße über den Fluss und bin mir nicht sicher, was ich tun soll. Wie Sie sehen können, verwendet meine Anwendung geopy mit Google Maps API, um eine Adresse zu geocodieren. Momentan hat mein Koordinatenfeld keinen SRID-Satz, der standardmäßig auf 4326 gesetzt ist (EPSG: 4326). Offensichtlich sieht dies die Erde als einen Globus, nicht als eine flache Oberfläche.

Nach der Antwort in der folgenden Frage verwenden Dinge wie Google Maps (EPSG 3857), die anscheinend eine SRID von 900913 hat. Ссылка

Also heißt das, ich sollte meine SRID auf 900913 setzen? Alle Koordinaten meines Restaurantmodells werden auf die gleiche Weise gespeichert wie unten im Geocoder. Das würde ich annehmen.

Nun werde ich hier rausgeworfen, das folgende Tutorial Ссылка verwendet ein Punktfeld mit ihrer SRID Setzen Sie auf 4326 (Standard) und ihre Markierungspunkte erscheinen perfekt auf Google Maps.

Momentan sind meine Anfragen anständig, aber es fühlt sich immer noch ein wenig an.

Hilfe ist willkommen, danke!

%Vor%

Restaurant-Modell

%Vor%     
user3739703 02.07.2014, 08:59
quelle

1 Antwort

18

Sie sollten 4326 verwenden (was Breiten- und Längengrad bedeutet und das WGS84-Datum und das Sphäroid verwendet, um die Form des Globus zu modellieren), um Punkte zu Google Maps hinzuzufügen. Geräte wie GPS, die Ihre Position auf dem Globus speichern, speichern Daten in 4326, die dann intern in Google Maps auf 3857 (in Metern) projiziert werden. Wenn Sie sich das Beispiel zum Laden von GeoJSON ansehen, werden Sie sehen, dass die Punkte in 4326 sind.

>

900913 (was beim Schreiben von Taschenrechnern nur GOOGLE ist) hat viel Verwirrung verursacht und ist auf die Tatsache zurückzuführen, dass die EPSG anfänglich sehr schlecht über das war, was sie für eine ungenaue Projektion halten, vor allem weil sie annimmt, dass die Welt ein Kugel. Es wurde wegen der weltweiten Bekanntheit von Google und wegen seiner mathematischen Lenkbarkeit populär. Anschließend gab die EPSG eine neue offizielle Bezeichnung von 3857 (naja, technisch gab es auch eine andere, 3587, nur um noch mehr Verwirrung zu verursachen). Also, während Leute immer noch über 900913 sprechen, sollten Sie offiziell 3587 verwenden. 3587 wird in Metern projiziert und verwendet, um Kacheln für die Anzeige in Google Maps zu generieren, sollte aber nicht verwendet werden, um Punktquellen hinzuzufügen, wo Sie unbedingt 4326 verwenden möchten .

Es gibt einen guten Artikel hier, wenn Sie mehr über die Geschichte davon wissen möchten: Ссылка

    
John Powell aka Barça 02.07.2014, 10:18
quelle