Настройка локального картографического веб сервера

Здравствуйте, уважаемые форумчане.
Я к Вам со своими проблемами, прошу помочь разобраться)
Проблема:
На работе стоит задача поднять локальный веб сервер для отображения картографической информации. Хочу при этом использовать NodeJS, Leaflet и OSM соответственно.
Установил NodeJS, с помощью него собрал leaflet, скачал карту http://planet.openstreetmap.org/ - а теперь как это все собрать воедино!
Я так понимаю, что на NodeJS пишется веб сервер, на нем крутятся серверные скрипты которые как то должны взаимодействовать с файлом карты.
Не могли бы Вы, уважаемые, разъяснить начинающему и направить на путь настройки сервера.
Может, чего не хватает в этом трио…
Заранее спасибо, с уважением, Иван.

Google по ключевым словам посоветовал вот это, вроде что-то полезное по теме. У самого опыта спаривания nodejs c osm нет.

Спасибо, а опыта создания локальных osm серверов не было?

Нет, у меня web отдельно и osm отдельно )) Оффтопим, надеюсь придут знатоки ))

Бррр, подождите, как отдельно?

В плане обработки osm’а у меня небольшой опыт разработки навигационной программы на его основе, а в плане nodejs’а - то, что в подписи. Поэтому - отдельно.

Есть сервер - источник изображений карты, а есть сервер - который выдаёт страницы, на которых показывают изображения карты. Leaflet или там OpenLayers - это для вторых. А planet, mapnik и т.п. - это для первых.
Вам которые из них нужны? Вы хотите сделать своё изображение карты? Или вам достаточно просто показать любое?

http://switch2osm.org/ гляньте…
и http://wiki.openstreetmap.org/wiki/Virtual_machine_image

2 Sergey Astakhov
http://planet.openstreetmap.org/ c этого сайта скачала карту (архив 25 ГБ, распаковывая, получаем 311 ГБ)- скажите это файл карты? Его обрабатывать с помощью Mapnik?
Мне нужен веб сервер на NodeJS, c картой OSM, доступной без интернета с исп-ем Leaftet.
Простите если что то пишу не так- не совсем разбираюсь(

То что скачал на 300ГБ - это не карта в том виде в каком она выглядит в браузере, это грубо говоря набор точек с координатами и артибутами. В общем RAW-данные.
И да Мапник рисует на основе этих данных залитых в Postgresql. А вообще я не понимаю, зачем вам обязательно сервер NodeJS, я обхожусь апачем и html-кой и карту у меня показывает :slight_smile:

Cr_osm

напишите по-подробнее, что нужно отображать

отображать нужно карту, с возможностью нанесения на нее меток, рисование полигонов, линий и тд. К меткам по возможности добавить описание и фото при клике. Вот на сайте osm карта- такого плана) и еще вопрос зачем использовать node js при сборке leaflet , что это за скрипт получается, где его использовать?

Cr_osm:

Самостоятельно собирать leaflet вам не нужно. Продвигайтесь постепенно. Скачайте leaflet с сайта http://leafletjs.com. Попробуйте воспроизвести пример с заглавной страницы http://leafletjs.com. Дальше постепенной добавляйте нужный вам функционал.

во первых хочу сказать всем спасибо!

2 vvoovv
с реализацией примера нет проблем, но как сделать похожую карту локально, без интернета, имея файл на 360 ГБ с planet.osm и node js в качестве веб сервера! Как собрать все в одно целое?

Здесь люди делают что-то похожее. Точнее, там готовая связка node.js+leaflet. Я бы начал с этого. Данные скорее нужно в PostGIS запихать, нежели файл использовать.

Cr_osm,
если хотите подложку изготовить, то вам нужно еще изучить http://switch2osm.org/serving-tiles/

Ещё раз. node.js тут не при делах вообще. Осознайте несколько простых тезисов, а то у вас каша в голове:

  1. “файл на 360 ГБ с planet.osm” - это сырые данные. Напрямую с ними почти ничего работать не умеет, а если и умеет - то предельно медленно. Зато их с помощью osm2pgsql можно загнать в базу.
  2. Postgres вместе с PostGIS - общепринятая в мире OSM база для хранения геоданных. planet.osm надо загонять в постгрес.
  3. Mapnik - один из рендереров. Т.е. по запросу умеет генерить тайлы. За данными для генерации стучится в постгрес.
  4. leaflet - всего лишь одна из библиотек, умеющая показывать карту из тайлов. Какие тайлы показывать ему пофиг, никакой серверной части он сам по себе не требует (ну исключая сами тайлы), следовательно node.js ему для работы в принципе не нужен. Но если вы хотите добавить какой-либо дополнительный функционал - вы можете его реализовать в том числе и с помощью node.js, если так уж хочется.

PS: Автор, если вы вдруг не догадались, то поясняю, для полноценного сервера, отдающего карту поднимать надо всё это. Если вам нужен не весь мир, а довольно небольшие участки (скажем, конкретный город) - то есть варианты куда проще, тот же Maperitive или TileMill

Насколько я понял, задача именно что сделать сервер на node.js, уж не знаю почему именно так (учебная?). В остальном - категорически поддерживаю.

Насколько я понял, автору потребовался сервер, его кто-то отправил в сторону leaflet, автор не разобрался и решил, что leaflet надо скомпилить, а leaflet для компиляции требует node.js, вот тут-то скорее всего у автора диссонанс и случился. :slight_smile:

История автор нас рассудит. Автор? :slight_smile: