Ich habe eine einfache Frage zur Berechnung von Entfernungen in PostGIS.
Ich möchte den Abstand zwischen zwei Geometrien ermitteln. Ich benutze dieses Sid: 4269 in Metern, was ich jetzt tue, ist dieses: ST_Distance((a.geom,b.geom)) FROM ...
aber ich erhalte Ergebnis in Graden. Ich denke, ich sollte mit Geografie arbeiten, aber wie kann ich ein Geom in eine Geografie umwandeln? Ich habe es mit (a.geom :: geography) versucht, aber ich erhalte einen Fehler.
Was kann ich tun, um mein Ergebnis in Metern zu erhalten?
Danke
postgis
coordinate-system
postgresql
distance
YassineGeoma
quelle
quelle
SELECT ST_Distance_Sphere(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'), ST_GeomFromEWKT('SRID=4326;POINT(-72.1260 42.45 15)'))
Die Einheiten von SRID 4269 ( NAD 83 ) sind keine Meter - dies ist eine geodätische Projektion , dh die Koordinaten sind Grad (geografische Koordinaten).
Die Antwort von pacofvf gibt Ihnen die Entfernung in Metern an. Wenn Sie jedoch wirklich Ihre Anfangskoordinaten in Metern angegeben haben, sollten Sie ein projiziertes Koordinatensystem verwenden. Wahrscheinlich möchten Sie für Nordamerika so etwas wie das State Plane Coordinate System, das abhängig von der abzubildenden Region eine Reihe unterschiedlicher Projektionen aufweist.
Ich vermute jedoch, dass Sie nur Lat / Lon-Werte verwenden, sodass dieser zweite Absatz wahrscheinlich nicht relevant ist - verwenden Sie einfach die oben beschriebene
ST_Distance_Sphere
Funktion.quelle