Страницы

Поиск по вопросам

вторник, 28 мая 2019 г.

Leaflet координаты

Подскажите, как я могу получить координаты углов каждого тайла?
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

Комментариев нет:

Отправить комментарий