Задать вопрос
@xxxibgdrgn

OSM карта на сайте локально?

Имеется база, содержащая тайлы карты OSM.
Как, используя Leaflet, подключить эти тайлы локально?
Видел способ с виртуальным сервером, но не с помощью базы данных. Какие вообще имеются способы подключения карты на сайт локально?
  • Вопрос задан
  • 549 просмотров
Подписаться 2 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Зависит от нужной детализации. Я делал локальную карту на GeoJSON тайлах(тайлы - порционная загрузка карты, GeoJSON - чтобы векторно отрисовывать). Отрисовка идет полностью на стороне клиента, если добавить gzip сжатие данных на сервере, то тайлы вообще мало весят. Сервер же работает с базой данных postgresql - координаты с типом данных polygon - за счет этого доступна логика пересечения полигонов - в запросе указываем полигон(bounding box) тайла, который легко рассчитывается по его x,y,z координатам. В базе несколько таблиц с группировкой по типам - дороги,жд пути,дома,леса,реки,озера. Скорость отдачи тайлов зависит лишь от производительности движка баз данных. Отдачу типов по увеличению можно регулировать на стороне сервера.
Для отображения использовал OpenLayers - нужно больше писать и думать(зато полностью кастомизируется отрисовка), а то Leaflet слишком простой. В принципе он тоже должен уметь работать с GeoJSON тайлами.

Локально нужно только если карта часть софта в закрытой корпоративной сети, где интернет ограничен - потому что в любом случае не будешь хранить карту в той детализации в которой она представленна в интернете.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы