ich habe mithilfe der Doku einen eigene Tileserver eingerichtet was auch recht gut geklaptt hat.
Server ist von Ext. Erreichbar. auch die automatisch erzeugte Slippymap arbeitet mit Local Tiles.
Nun habe ich folgendes Problem wenn ich die Slippy Map von einem anderen Ort aus ausführe bleiben die Tiles Rosa und werden nicht angezeigt. Über Grafik anzeigen kann ich mir die gerenderten Tiles aber anzeigen lassen.
Daran kann es nicht liegen die Tiles sind da und von ext. abrufbar.
Wenn ich in der html der Slippymap meine IP mit a.tile.openstreetmap.org ersetze kann ich die Slippymap auch direkt vom Desktop aus starten und bekomme Tiles. Evtl Fehler in Zugriffsrechten ?
Anbei mal die Entscheidende Stelle der Slippymap
var newLayer = new OpenLayers.Layer.OSM("Local Tiles", "http://91.250.84.11/osm/${z}/${x}/${y}.png", {numZoomLevels: 19});
map.addLayer(newLayer);
In den 2.12 Release Notes ist das kurz erklärt: OSM and Bing Layers (mittlerer Abschnitt). Alternativ zu Layer.OSM kann auch Layer.XYZ verwendet werden, dort ist die Option nicht nötig.
Also, so ganz bin ich noch nicht durchgestiegen, was wann warum benötigt wird, aber ich verstehe das so (ohne Garantie):
Mit 2.12 wurde die Möglichkeit eingeführt, Tile Images zu HTML5 Canvas zu konvertieren, siehe Release Notes: Tile Canvas. Da der Canvas auch manipuliert werden kann, sind wohl aus Sicherheitsgründen entsprechende Berechtigungen erforderlich, wenn die Tiles von einem fremden Server stammen (Stichwort CORS). Details siehe Kommentare zu verlinktem Pull Request (Suche nach “crossOrigin”).
openstreetmap.org unterstützt CORS, deshalb wird für Layer.OSM das crossOriginKeyword immer gleich mitgesendet, auch wenn es eigentlich nur für die getCanvasContext Funktion benötigt wird. Andere Server, die CORS nicht unterstützen, liefern zwar die angefragten Tiles aus, der Browser verweigert dann aber wegen fehlendem Access-Control-Allow-Origin Header generell den Zugriff.