Да это вопрос к тайлам, а не к Leaflet.
Ну хорошо. Есть например http://toolserver.org/~osm/locale/ru.html. Как с помощью Leaflet сформировать к нему запрос? у меня не получается. Или есть другие тайлсервера использующие name:ru с которыми проще работать? Я просто других не знаю.
Добавьте два слоя
http://{s}.www.toolserver.org/tiles/osm-no-labels/{z}/{x}/{y}.png
и
http://{s}.www.toolserver.org/tiles/osm-labels-ru/{z}/{x}/{y}.png
Спасибо, получилось. А где почитать про эти параметры (osm-labels-ru, osm-no-labels и т.д.)? Тыкните носом пожалуйста.
Где почитать не знаю.
Я просто посмотрел с каких адресов грузятся тайлы на http://toolserver.org/~osm/locale/ru.html
Еще можно попробовать
http://{s}.tile.openstreetmap.de:8002/tiles/1.0.0/bg//{z}/{x}/{y}.png
+
http://{s}.tile.openstreetmap.de:8002/tiles/1.0.0/labels/ru,_/{z}/{x}/{y}.png
Вместо “ru," можно указывать любую другую приоритетность языков. Например "ru,uk,en,”.
http://mlm.jochentopf.com/
Как подключить слой, у которого сервера разнятся по цифре, а не букве?
Буква - это {s} в адресе, а цифра как?
Та же {s}, только добавить subdomains: ‘123’ в параметрах слоя.
Можно ли извлечь данные ОСМ по конкретным объектам, чтобы на их основе нарисовать полигон? Нужно подсветить заданные строения. Хорошо бы было выборку делать по адресу (addr:housenumber + addr:street). Есть ли в Leaflet такие инструменты?
madeinussr, по моему готового инструмента нет. Для извлечения небольшого количества данных http://wiki.openstreetmap.org/wiki/Overpass_API (например http://overpass-turbo.eu/ )
На конфе ОМММ выступал по-моему Hind с плагином для поиска пои, и так это было реализовано как раз через Overpass_API.
Overpass Turbo умеет экспортировать в GeoJSON, у лифлете из коробки есть L.geoJson для загрузки такого.
Спасибо, получилось: на http://overpass-turbo.eu/ сделал выборку интересующих меня объектов, экспортировал в GeoJson, подключил и с помощью L.geoJson вывел данные на карту.
Жаль нет прямого обращения к данным ОСМ, чтобы при изменении данных на сервере перерисовывался полигон.
А не подскажет кто-нибудь как можно изменяя переменные, задающие координаты в объявлении карты заставить эту карту автоматически перемещаться?
<script type='text/javascript'>
var shirota = 45.0445;
var dolgota = 35.3561;
......
Функция, изменяющая переменные shirota и dolgota
......
var map = L.map('map1').setView([shirota, dolgota], 16);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
</script>
Для перемещения карты на новое место можно (и нужно) использовать panTo
map.panTo([50, 30]);
map.panTo({lon: 30, lat: 50});
map.panTo({lat: 50, lng: 30});
map.panTo(L.latLng(50, 30));
или ещё раз setView
map.setView([shirota, dolgota],map.getZoom());
Спасибо получилось! Не сразу понял, что panTo нужно засунуть в мою функцию мониторящую события на странице, размещал после неё. Таким образом и переменные оказались не нужны - сразу подставляются необходимые данные.
Получилось, да не совсем. Теперь нет возможности управлять картой с помощью мыши - она возвращается в выбранные координаты.
Указанные функции ничего не блокируют. Где-то вы в другом месте ошибаетесь.
Да, проблема была в функции работающей с событиями html-документа (переключение между radio передвигает карту в нужное место). Сменил window.onclick на window.onchange и все заработало.
Еще долго парился с восстановлением зума при перетаскивании карты, пришлось поменять panTo на setView.
Ребята, у меня тут вопрос: как с помощью leaflet и leaflet routing machine рисовать пути по своим координатам? leaflet routing machine берет координаты с OSRM, у меня же есть собственный сервис, который эти данные формирует. Может кто сталкивался - буду благодарен за подсказку.
Добрый день.
Подскажите как можно на основе leaflet построить карту с gps координат в реальном времени?
Спасибо.