2014-06-21 27 views
5

Tôi đang sử dụng tờ rơi hiển thị lát ngoại tuyến đã được tạo bằng cách sử dụng maperitive. Tất cả mọi thứ hoạt động tốt nhưng không ai biết làm thế nào để kích hoạt sự kiện lỗi trong trường hợp gạch yêu cầu không tồn tại? Trong trường hợp không thể tải lát yêu cầu, bạn có thể chỉ định lát mặc định.tờ rơi - tải gạch - lỗi sự kiện

var myLayer = new L.TileLayer(..., {errorTileUrl: '/path/to/default/tile.png'}); 

thực tế đặt lát mặc định nếu có lỗi khi tải ô yêu cầu. Nhưng đây không phải chính xác những gì tôi cần. Tôi cần nó để bắn một sự kiện.

Mã tờ rơi tự khá đơn giản.

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); 

Trả lời

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

Liệu nó giúp?

+0

Làm việc cho tôi và được bao gồm trong Tờ rơi 0,73. Thật thú vị, sự kiện này không bong bóng lên tới bản đồ, vì vậy bạn phải ràng buộc người nghe đến lớp (như câu trả lời này gợi ý). Ngoài ra, sự kiện này không được ghi lại trên http://leafletjs.com/reference.html – jxmallett

+0

Có vẻ như sự kiện 'tileerror' đã được thêm vào [Nov 27, 2013] (https://github.com/Leaflet/Leaflet/commit/ 82e43019eecd554d0491747a2ff63a481dfae058 # diff-f1e6be67599c594731fff6191c710420R419) – jxmallett

+0

Cảm ơn FranceImage ... nó hoạt động! :-) –

Các vấn đề liên quan