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.
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.
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.
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.
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>'
})