Страница 1 из 1

Leaflet проблема с координатами

СообщениеДобавлено: 21 сен 2018, 12:21
lyrion
Что было сделано:
Из кэша SasPlanet вытащил тайлы карты OSM. С помощью библиотеки Leaflet вывел карту на страницу, код следующий:
Код: Выделить всё
<div id='map'></div>

JS файл:
Код: Выделить всё
var osm = L.tileLayer('./map/OsmCircle/{z}/{dop}/{x}/{dop}/{y}.png',{ maxZoom: 15, dop: '0' });    
var map = L.map('map',{center: [76.5, -48.5], zoom:5, layers: osm});
var baseLayers = {"Open Street Map": osm};
L.control.layers(baseLayers).addTo(map);
L.control.mousePosition().addTo(map);

Все работает, карта отображается, но координаты в корне неверные.
Я отображаю их через плагин MousePosition, который работает на родном методе Leaflet: latlng.

Если судить по плагину то координаты 0;0 моей карты находятся в правом нижнем углу, например координаты Москвы 76; -72;
Как можно увидеть проблема даже не в отрицательных числах, длинна всей карты координатам так же равна 180, а высота ~85, дело в том что координаты судя по всему отображаются без учета кривизны планеты, просто как линейные.

Подскажите пожалуйста, как это можно исправить.

Re: Leaflet проблема с координатами

СообщениеДобавлено: 27 сен 2018, 06:15
lyrion
Итак, разобрался сам. Посмотрел на свою карту в режиме разработчика и увидел, что на масштабах от 1 до 3 LeafLet достраивает серые тайлы. Посчитал их количество и пришел к следующему выводу:
Дело в том, что масштабы в кеше SasPlanet начинаются с z1 а в LeafLet с 0.

Нужно было просто поставить соответствие z1 - 0 , z2 -1 и т.д. Из за отстутсвия нужных тайлов LeafLet стал мудрить с координатами, теперь все нормально и появилась "бесконенчость" карты, т.е. тайлы по мере прокрутки направо достраиваются снова.

P.s.Советую так же на крупных масштабах выводить маркер в точке 0;0, он должен встать в точке пересечения экватора и нулевого мередиана, если все так,то и отсчёт будет верным.