OSM "German Style" - wie einbinden?

Hallo! Ich habe auf openstreetmap.de gesehen, dass es einen Layer “German Style” gibt.
Den würde ich auch gern nutzen. Wie binde ich den nun bei mir ein?

Ich sah, dass der Layer mit

 new OpenLayers.Layer.XYZ("OSM deutscher Stil", [
               "http://a.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
               "http://b.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
               "http://c.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png"],{attribution: 'Tile server sponsored by STRATO / <b>Europe only</b> / <a href="./germanstyle.html">About style</a>'})

initialisiert wird.

Nur habe ich nicht heruasfinden können, wie sich ${z}/${x}/${y} berechnet.

Kann mir jemand da weiterhelfen?

Danke!

So: http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Aber das musst Du nicht beachten. Openlayers setzt in z,x,y die richtigen Werte für die Kachel ein und holt sich die entsprechende Kachel vom Server. Du kannst einfach die 4 Zeilen da oben nehmen und in Dein Javascript einbauen.

schau mal :slight_smile:
http://dev.openlayers.org/docs/files/OpenLayers/Layer/XYZ-js.html

edit: Max war schneller

… und bei Bedarf das Osmarender an gleicher Stelle rauswerfen, falls es noch existiert. Dessen Tileserver nämlich existiert nocht mehr.

Gruß,
ajoessen

Ok, werd ich noch mal probieren.
Ich hatte das so gelassen mit den Werten, da wurde die Karte bei mir aber auf den minimalsten Wert gezoomt und man sah nichts. Wenn ich dann auf einen zweiten Layer kurz umgeschaltet hatte (cycles) und dann wieder auf “German Style”, war die “German Style”-Karte dann im normalen Zoombereich, wie bei der “cycles”-Karte. Von daher nahm ich an, ich muss die Werte (x,y,z) noch mit Werten belegen.

Ja, den Osmarenderer hatte ich letzte Woche rausgeworfen, als ich sah, dass es da Probleme gab und dann herausgefunden hatte, dass der Server abgeschaltet ist.

Danke euch, geniesst die Sonne :slight_smile:

Wobei ich mir nicht sicher bin, wie die Tile Usage Policy für den Dienst aussieht. Sven hat den wohl gerade auf einen leistungsfähigeren Server migriert, aber die Anbindung ist da nicht so gut.

Im Zweifelsfalle die Fehlerkonsole befragen.
Möglicherweise hast du keine Startkoordianten vorgegeben, dann setzt sich OL auf 0°E/0°N, also mitten im Atlantik. Das ist aber möglicherweise beim deutschen Stil nicht als Tile vorhanden; oder nur in Zoom 0 und 1.

Gruß,
ajoessen

Moins,

Probier mal “new OpenLayers.Layer.OSM” statt “new OpenLayers.Layer.XYZ”.

Hintergrund: OpenLayers.Layer.XYZ definiert die Ausdehnung der Karte nicht, und ohne bekannte Ausdehnung kann nichts gezeichnet werden.

Du übergibst an der Stelle nicht die URL einer Kachel, sondern ein Schema, um die URLs von Kacheln zu erzeugen.

Gruß Wolf

So geht’s!
Danke!

Nahmd,

Ok.

Dann ist die korrekte Lösung ein zusätzlicher Parameter “sphericalMercator: true” zum Layer.XYZ. Der führt dazu, dass alle Parameter passend zu unserer “normalen” Tile-Struktur berechnet und gesetzt werden:


new OpenLayers.Layer.XYZ("OSM deutscher Stil", [
    "http://a.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
    "http://b.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png",
    "http://c.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png"],
    {sphericalMercator: true,
     attribution: 'Tile server sponsored by STRATO / <b>Europe only</b> / <a href="./germanstyle.html">About style</a>'
})

Gruß Wolf

Geht auch :slight_smile: