Ich möchte einen PUNKT mit den Längen- und Breitengradspalten einer vorhandenen Tabelle erstellen .
Hier ist ein Link zur Dokumentation von ST_MakePoint .
Hier ist mein Tisch:
CREATE TABLE sysinst.bio (
oid INTEGER PRIMARY KEY,
longitude FLOAT,
latitude FLOAT,
geom GEOMETRY(POINT, 26913)
);
Hinzufügen einer Geometriespalte:
SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);
Hier ist meine Frage:
UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);
Kein zurückgegebener Fehler, obwohl die PUNKTE bei der Anzeige in QGIS falsch dargestellt werden.
Denn (-97.5959, 21.1922)
ich erhalte(-109.4896, 0.0002)
Irgendwelche Vorschläge?
Ich bin offen dafür, dies effizienter zu tun, wenn es einen einfacheren Weg gibt.
Antworten:
Vielleicht verstehe ich das nicht, aber Sie scheinen Längengrad-Breitengrad-Koordinaten (-97, 21) in Grad in ein UTM-basiertes CRS einzugeben, das Meter verwendet. Wenn Sie dies als SRID 26918 deklarieren, müssen sich die Long / Lat-Werte in diesem CRS befinden. Wenn die Long / Lat-Werte in Grad angegeben sind, müssen Sie die Geometrie als ST_SetSRID (MakePoint (...), 4326) erstellen und dann die Ebene in 26913 transformieren. Fügen Sie also alles zusammen, wenn Sie die Ebene benötigen in 26913, aber Ihre Längen- / Breitengradspalten sind in Grad angegeben, mit CRS 4326 dann
quelle