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

отображать нужно карту, с возможностью нанесения на нее меток, рисование полигонов, линий и тд. К меткам по возможности добавить описание и фото при клике. Вот на сайте 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:

LinFor прав! Я именно и думал что раз leaflet требует nodejs то на них весь процесс отображения и строится.
Момент генерация тайлов мне и был не понятен! И все же последний вопрос: то есть мапник генерирует тайлы и отдает их по запросу, а leaflet отображает эти тайлы в браузере? Я вот не понимаю просто как люди в моей организации будут пользоваться данными которыми я залью в постгресс. Мапник их будет им отдавать а леафлет показывать?
Нужна именно карта мира!

Да, мапник умеет генерить из данных картинки, а лифлет просто организует эти картинки в связную и “перемещабельную” карту. Т.е. он просто вычисляет где в каком месте какой тайл должен быть и вставляет нужную картинку в нужное место. Ну и обрабатывает пользовательский ввод, т.е. перемещения карты, смену зума и т.д.

так а по локалке как это сделать?

Ну так а в чём проблема? :slight_smile: Тайлы и leaflet отдавайте http-сервером да и всё :slight_smile:

А на сколько долго мапник генерит тайл, ведь везде используется кеш, а тут предлагается реалтайм ?

Не, ну он так же генерит и кладёт в кэш.

Меня терзают смутные сомнения.
Если речь идет о тайл-сервере с картой мира и ее периодическим обновлением, то по масштабу это не совсем то программное средство, которое можно тихо-мирно поселить в уголке конторского сервера, вместе с 1С и прочим. Нужна железка уже не soho-уровня а начального enterprise.
Представляет ли это себе руководство конторы, где этим вопросом поручено заниматься человеку, чей уровень осведомленности несколько не соответствует работе с такими вещами, а ближе к эникейным делам и сбору чего-то на коленке?

Ну а как ты думаешь, если поручено “специалисту”, но начальники вообще в облаках летают.
Вообще пока не могу догадаться, зачем нужен весь мир в собственном рендене (хотя я более чем уверен оставят дефолтный мапник), когда можно брать он-лайн мапник и накладывать сверху свои нужные тайлы.

Дык в условиях задачи чётко сказано “без интернета” :slight_smile:

Сомнения касаются того, что контора в итоге потянет это. Потому что если такой специалист, то железки под это нет (если бы была, или могла быть, то специалист был бы другой), и все упрется в то, что руководство не раскошелится на нее, когда узнает, что она нужна. Витает или не витает в облаках руководство, при этом не важно.
А логику идеи проекта я вполне могу себе представить: локальная карта - чтобы не зависеть от падучего интернета или интернета по дикой цене от владельцев офисного центра; 300Гб автор темы вполне мог вытянуть разово и по домашнему каналу с тарифом без ограничения трафика; карта мира - потому что либо “а пусть будет”, либо контора - туристическое агентство (сомнительно, конечно - нахера им карта, но иные случаи вроде импорта-экспорта еще менее вероятны) или, того хуже, общественная организация.

Тут еще не дошло даже до этапа, когда карта видна у клиента на мониторе, а уже такие проблемы. А ведь еще нужно реализовать обратное - рисование чего-то в веб-интерфейсе и сохранение этого обратно в PG. (Я вообще не понимаю, на кой черт нужен веб-интерфейс для локального проекта - QGIS в руки, и вперед.)

А потом еще мержить свои изменения с глобальным ОСМ, а без локального инета, так вообще наверное раз в неделю/месяц.