2014-06-21 11 views
5

Ich verwende ein Flugblatt, das Offline-Kacheln anzeigt, die mit maperitive erstellt wurden. Alles funktioniert gut, aber weiß jemand, wie man das Fehlerereignis auslöst, falls die angeforderte Kachel nicht existiert? Falls die angeforderte Kachel nicht geladen werden kann, können Sie eine Standardkachel angeben.Flugblatt - Kachel laden - Fehler Ereignis

die tatsächlich die Standardkachel setzt, wenn beim Laden der angeforderten Kachel ein Fehler auftritt. Aber das ist nicht genau das, was ich brauche. Ich brauche es, um ein Ereignis auszulösen.

Der Prospektcode selbst ist ziemlich einfach.

L.tileLayer('http://{s}.tiles.mapbox.com/v3/MapID/{z}/{x}/{y}.png', { 
    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>', 
    maxZoom: 18 
}).addTo(map); 

Antwort

8
myLayer.on('tileerror', function(error, tile) { 
    console.log(error); 
    console.log(tile); 
}); 

Ref: https://github.com/Leaflet/Leaflet/blob/v0.7.3/src/layer/tile/TileLayer.js#L581

Hilft es?

+0

Funktioniert für mich und ist in Leaflet 0.73 enthalten. Interessanterweise sprudelt das Ereignis nicht bis zur Karte hoch, so dass Sie den Listener an die Ebene binden müssen (wie diese Antwort vermuten lässt). Außerdem ist das Ereignis nicht auf http://leafletjs.com/reference.html dokumentiert. – jxmallett

+0

Sieht aus, als ob das Ereignis "tileerror" hinzugefügt wurde [27. November 2013] (https://github.com/Leaflet/Leaflet/commit/ 82e43019eecd554d0491747a2ff63a481dfae058 # diff-f1e6be67599c594731fff6191c710420R419) – jxmallett

+0

Danke FranceImage ... es funktioniert! :-) –