osm2pgsql und WGS84

Hi,

weiß jemand zufällig, wie ich tiles - die ich mit osm2pgsql und mapnik erhalte - in ein WGS84-Format bringen kann?
Bzw. an welcher Stelle müsste ich das angeben. Beim Import der osm-Datei in die Datenbank per osm2pgsql?

Ich danke euch!

*gelöst

Ich rendere nicht mit Mapnik, darum kann ich nur halb helfen, aber anscheinend kann Mapnik auch Plattkarten und andere Projektionen

Der Datenbank ist es ziemlich egal, in welchem SRS die Daten liegen, Postgis kann umrechnen und liefert das aus, was angefragt wird. Das Umrechnen kostet aber Zeit, weswegen man beim Importieren dem osm2pgsql einen Schalter “-l” und “-m” für “LatLon” und “Mercator” mitgegeben hat. Wer selten importiert, aber dauernd Mercator-Kacheln rendern will, kann dann schon bein Importieren das Umrechnen erledigen. Wenn Du nur Plattkarten erzeugen willst, wäre es ungeschickt, beim Importieren in Mercator umzurechnen und beim Rendern wieder zurück, da wäre “-l” besser für die Performance.

Grüße, Max

Also ich möchte gerne Bremen tiles erzeugen, auf die ich später markers legen kann. Bei den markers handelt es sich um besondere Punkte (WGS84 Koordinaten), weshalb die erzeugten tiles auch dieses Format aufweisen sollten.

Mittlerweile habe ich aber schon alles versucht.
Ich habe die Bremen.osm einmal mit dem Parameter -l in die DB gepumpt. Wobei an dieser Stelle die Parameter egal sein dürften (da PostGis ja alles verarbeiten kann und je nachdem nur das Rendern längert dauert). Danach habe ich in den Mapnik-XML alle Projektionen auf die epsg:4326 (WGS84) umgestellt:

  • settings.xml
  • osm.xml
    Dazu noch in den datasource-settings.xml den extent auf <-179, -89, 179, 89> gesetzt.

In der generate_tiles.py habe ich lediglich die Bounding Box abgeändert:
bbox=8.4813576818,53.0103701114,8.9830477728,53.6061664164

Um die tiles zu überprüfen nutze ich MOBAC und binde die tiles lokal ein…Das ganze sieht dann aber leider in etwa so aus:

Das ist genau das, was zu erwarten ist, wenn man WGS84 als Projektion benutzt.
Im Prinzip siehst du dabei von einem Punkt oberhalb des Äquators auf die Erdkugel.
Für Gebiete weit weg vom Äquator siehst du also eine schräg geneigte Fläche.

Edbert (EvanE)

Hallo,

ich versuche es mal als Nicht-Geometer zu beschreiben:
WGS84 ist kein Format, nicht einmal eine Projektion, sondern ein Datum, d.h. welches
Erd-Ei (Ellipsoid) zu Grunde gelegt ist und wo der Nullpunkt der Koordinaten (Längengrad 0) ist. Die Koordinaten (lat/lon) sind die Winkel in diesem Bezugssystem.
Unsere gekrümmte Erdoberfläche muss nun für den Bildschirm (oder Papier) “flachgeklopft” werden. Das geht grundsätzlich nicht ideal und jede dieser Projektionen hat ihre Vor- und Nachteile. Die Standardprojektion für z.B. JOSM ist Mercator. Man kann auch einfach die Koordinaten in ein rechtwinkliges Gitter übernehmen, das wäre die “Projektion” WGS84. Die sieht nur etwas zerdrückt bzw. zerdehnt aus, da zum Pol hin die Längengrade immer näher aneinanderrücken. Wie das aussieht, kann man sich ansehen, wenn man in JOSM auf WGS84 Geografisch einstellt (siehe EvanE).

Wenn man irgendwelche Daten mit Koordinaten in WGS84 hat, sagt das nur etwas über den Nullpunkt aus. Andere Systeme (Gauss-Krüger, Lambert, EPSGxxx …) basieren auf anderen “Eiern” und sind gegenüber WGS84 je nach Gegend einige Meter bis einige hundert Meter verschoben, egal wie das hinterher projiziert würde. Um es noch verwirrender zu machen, ist bei diesen Systemen die Projektionsmethode oft auch “mit drin”.

In JOSM ist die Voreinstellung Datum=WGS84 und Projektion Mercator. Das muss nur geändert werden, wenn die Daten in einem anderen System vorliegen, in Deutschland können die Vermessungsdaten (je nach Bundesland) in Gauss-Krüger sein. In anderen SW-Systemen wie QGIS muss man das System für die Input-Daten eingeben, dann weiß es, wo die Punkte auf dem “Ei” liegen. Dann kann es die Koordinaten auf anderen Nullpunkte umrechnen und in beliebigen Projektionen ausgeben.

Bei den benutzten Programmen kann ich nicht weiterhelfen, da ich sie nicht kenne. Ich wollte nur die Hilfestellung geben, dass eine Angabe “WGS84” irgendwo im Workflow nicht automatisch für das gewünschte Ergebnis sorgt.