Подскажите, как я могу получить координаты углов каждого тайла?
var layers = {
Streets: L.mapbox.tileLayer('mapbox.streets'),
};
layers.Streets.on('tileload', function (e) {
... как-то получить координаты углов загрузившегося тайла ...
});
Версия leaflet 0.7.7. Благодарю!
Ответ
В обработчик события tileload передается объект {tile: ... , url: ... }. Элемент tile является HTML элементом с некоторыми допольнительными параметрами. Один из них _leaflet_pos - отступ в пикселах от левого верхнего угла видимой части карты (поскольку параметр начинается с подчеркивания, подразумевается что он приватный, его не будет в документации и он запросто может называться в другой версии иначе или вообще отсутствовать). Также эти значения можно увидеть в параметре inline-стиля transform. Чтобы перевести пикселы в координаты, можно воспользоваться методом layerPointToLatLng. Например так:
layers.Streets.on('tileload', function (e) {
console.log(mymap.layerPointToLatLng(e.tile._leaflet_pos));
});
См также:
Исходник L.TileLayer
Комментариев нет:
Отправить комментарий