X Meter in 900913 Darstellung

Hallo,

ich wollte eine BoundingBox in Postgis mit ST_Expand aufspannen die genau 10 Meter in jede Richtung geht.
Wie muss ich die Funktion aufrufen (lat,lon,units to expand) damit ich auf 10 Meter komme. Die Koordinaten werden vorher von 4326 auf 900913 transferiert.

Grüße

p3pp3

Umrechnung von Koordinaten ist eine eigene Wissenschaft für Sich… Ich habs mittlerweile aufgegeben, Koordinaten WGS nach Gauß Krüger hin und her zurechnen.

Du schreibst nicht, welche Software Du verwendest, aber wenn es JOSM ist, das zeigt unten in der Statuszeile die Entfernung in Metern an.

@Dennis: Er schreibt doch schon, dass er Postgis verwendet und dort st_expand…

Die Projektion 900913 Spherical Mercator wird bei den Online Karten so verwendet, dass du einen quadratischen Ausschnitt der Erde hast. Dabei wird normalerweise von -180 Grad bis +180 Grad verwendet und in Richtung der Pole abgeschnitten, da sonst die Verzerrung zu groß wird.

Bei den Slippy-Maps ist dir bestimmt schon das hier aufgefallen:
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),

Das ist der Ausschnitt.

Deine Frage war nun, welche Einheit das ist.
Die Einheiten sind Meter. Wenn du die Breite der Bounding Box berechnest wirst du 40075016,68 erhalten. Das entspricht dem Erdumfang in Metern am Äquator.

Du könntest also einfach ein Expand mit 10 machen (in 900913).

Unglücklicherweise stimmt das aber nur in der Nähe vom Äquator. Je näher du zu den Polen kommst um so verzerrter wird es.

In 4326 ist es ähnlich. Ein Grad ist am Äquator unterschiedlich lang als an den Polen.

Das hier hilft dir vielleicht weiter:
http://trac.osgeo.org/postgis/wiki/UsersWikiExamplesFindNearbyLatLon

Stephan