2012-07-06 2 views
6

Ich habe meinen eigenen OSM-Server eingerichtet, um Kartenkacheln zur Verwendung in einer Anwendung bereitzustellen. Für die Anwendung verwende ich OpenLayers und kam zu einem seltsamen Problem, wenn ich den Code von slippmap in meine Anwendung portierte. Grundsätzlich benutze ich denselben Code und für lokale Kacheln habe ich die URL meines Kachelservers eingerichtet.Map-Kacheln werden in Firefox nicht mit OpenLayers und eigenem OSM-Server angezeigt (alle pink)

Das Problem ist, dass beim Umschalten auf die lokale Ebene sehe ich nur die rosa Ebene der Karte, aber das src Attribut des Bild-Tags lädt die tatsächliche Kachel. Ich habe mit Firebug versucht, die rosa Schicht zu entfernen, aber dahinter ist kein Bild da! Wenn Sie die URL aus dem src-Attribut des img-Tags entfernen, wird die Kachel als Bild geöffnet.

Versucht dies an Chrome und die lokale Schicht funktioniert, in IE 7,8,9 auch. Das Problem ist nur bei FF und ich vermute etwas bei OpenLayers, aber nicht sicher was. Die Mapnik-Ebene funktioniert und zeigt Kacheln in allen Browsern an. Mit HTML5 übrigens.

Alle Ideen oder Hinweise sind willkommen.

Antwort

11

Es gibt eine andere Lösung, die keine CORS-Header serverseitig hinzufügen muss Sie benötigen eine „tileOptions“ Option zur Schicht Config zur Verfügung zu stellen, etwa so:

var layer = new OpenLayers.Layer.OSM("layer name", [urls], { 
    "tileOptions": { 
     "crossOriginKeyword": null 
    } 
}); 

Die Openlayers-Dokumentation für Layer.OSM und Tile.Image Ihnen sagen, wie dies zu tun, aber es gibt keinen Hinweis auf der Tatsache, dass der Standard verursachen kann Probleme in Firefox.

+1

Ich markiere deine Antwort als akzeptiert, da mir die Lösung mehr gefällt. Vielen Dank! – kode

4

Hm, ich rate es fast richtig. Es war eine Apache-Header-Einstellung, die eine domänenübergreifende Anforderung für die bereitgestellten Ressourcen ermöglicht. Hier gibt es mehr Infos für Neugierige https://developer.mozilla.org/en/http_access_control

Dies ist die Header-Einstellung, Fügen Sie es in < Verzeichnis>, < Location> oder .htaccess-Datei und prüfen Sie, dass Sie mod_headers aktiviert.

+1

Für alle anderen, die diese Seite mit der gleichen Frage gefunden haben ("Warum bekomme ich nur rosa Kacheln"), während Sie die Testseite des Pakets von http://switch2osm.org/serving-tiles/building- a-tile-server-from-packages /), sollten zwei Dinge beachtet werden: 1) Tun Sie, was Kode oben gesagt hat. 2) Öffnen Sie die Beispielseite (/var/osm/slippymap.html) in Ihrem bevorzugten Editor, und ändern Sie die Domäne in der URL in Zeile 44. Dieser Schritt ist nur notwendig, wenn Sie die Beispielseite betrachten möchten auf einem anderen Computer (da localhost nicht funktioniert). Danke für die Hilfe Kode! – Axle

Verwandte Themen