[Talk-de] Standardprojektion von OSM??

Jochen Topf jochen.topf at geofabrik.de
Fr Feb 6 21:04:20 UTC 2009


On Fri, Feb 06, 2009 at 08:38:35PM +0000, Sven Geggus wrote:
> Kai Behncke <Kai-Behncke at gmx.de> wrote:
> 
> > ich frage mich gerade in welchem Projektionssystem OSM eigentlich standardmässig vorliegt?
> 
> In der Datenbank und in OSM Dateien sind WGS84 lat/long Werte
> (epsg:4326).
> 
> Die Slippymap Kacheln sind in "Google Spherical Mercator" (hat
> zumindest bei meiner Version von proj4 noch keine offizielle epsg
> Nummer, verbreitet ist epsg:900913 1337-speak für "Google").
> 
> In Javascript hilft das hier:
> 
> function Lon2Merc(lon) {
>     return 20037508.34 * lon / 180;
> }
> 
> function Lat2Merc(lat) {
>     var PI = 3.14159265358979323846;
>     lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
>     return 20037508.34 * lat / 180;
> }

Hat OL inzwischen eingebaut. z.B. so:

var pos = new OpenLayers.LonLat(lon, lat);
pos.transform(new OpenLayers.Projection('EPSG:4326'),
    new OpenLayers.Projection('EPSG:900913'));

Man muss nur beachten, dass transform() in-place transformiert. Das ist
etwas unintuitiv. Im Zweifel vorher ein clone() machen, wenn man die
Koordinaten irgendwoher hat, wo sie noch gebraucht werden. Sonst
produziert man leicht Salat.

Jochen
-- 
Jochen Topf          www.geofabrik.de
Geofabrik GmbH       Handelsregister: HRB Mannheim 703657
Scheffelstr. 17a     Geschaeftsfuehrung: Frederik Ramm, Jochen Topf 
76135 Karlsruhe      Tel: 0721-1803560-1
topf at geofabrik.de    Fax: 0721-1803560-9





Mehr Informationen über die Mailingliste Talk-de