Mehr

Konvertieren Sie Entfernung von Metern in EPSG 3857


Ich muss die Entfernung von Metern in Einheiten von EPSG 3857 in PostGIS umrechnen. Dies ist für mich wichtig, um einen Radius für ST_DWITHIN zu berechnen, da ich mit Geometrien zu tun habe. Wie kann ich das machen?


Als Näherung geeignet für mittlere bis kleine Radien verwenden Sie dencos()des Breitengrads, um die wahre Entfernung auf eine "Entfernung" zu skalieren, die für Ihren Breitengrad im Web Mercator sinnvoll ist, wie hier beschrieben.

SELECT * FROM mytable WHERE ST_DWithin( ST_Transform(ST_SetSRID(ST_MakePoint(%lon, %lat), 4326), 3857), the_geom_webmercator, %radius / cos(%lat * pi()/180) );

Dies möchten Sie nur bei kleinen/mittleren Radien machen, da die Skalierung nur auf einem Breitengrad sinnvoll ist. Je weiter Sie sich von Ihrem Referenz-Breitengrad entfernen, desto falscher wird Ihr Radius. Wenn Sie ein "perfektes" Ergebnis wünschen, können Sie diesen Ansatz mit einem Test aufST_DistanceSphäroid()um die Ergebnisse auf Elemente genau im Umkreis zu reduzieren.


Schau das Video: How to find the EPSG code for your projection? (Oktober 2021).