SASGIS

Веб-картография и навигация

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

Обсуждение около-картографических и прочих программ и тем, напрямую не связанных с SAS.Планета

Модератор: Tolik

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

Сообщение lyrion » 21 сен 2018, 12:21

Что было сделано:
Из кэша 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, дело в том что координаты судя по всему отображаются без учета кривизны планеты, просто как линейные.

Подскажите пожалуйста, как это можно исправить.
lyrion
Новичок
 
Сообщения: 5
Зарегистрирован: 26 фев 2018, 10:39
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

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

Сообщение lyrion » 27 сен 2018, 06:15

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

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

P.s.Советую так же на крупных масштабах выводить маркер в точке 0;0, он должен встать в точке пересечения экватора и нулевого мередиана, если все так,то и отсчёт будет верным.
lyrion
Новичок
 
Сообщения: 5
Зарегистрирован: 26 фев 2018, 10:39
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.


Вернуться в Болталка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2