Страница 1 из 1

Вопрос из разряда "куда смотреть, что делать"

Добавлено: 16 сен 2014, 16:28
Pavel_A
День добрый.
На свой работе я получил задание, которое до текущего момента не входило в зону моей компетенции. И его надо было сделать практически сразу, поэтому пришлось сначала делать, потом думать. Итак.

Дано: /что уже функционировало/ выделен компьютер на Ubuntu. Установлен PostrgeSql + PostGis, Mapnik, Renderd, в базу импортированы данные osm по России.

Задача: Модификация данных на отдельно взятом регионе - выдан файл с планом местности и задачей перенести необходимые объекты с плана местности в электронный вид, то, что расходится с планом отредактировать или удалить. Размер области предположим 10на10км.

Сделано: Пошел по тому пути, который знал - установил JOSM и загрузил искомый квадрат данных с базы OSM, установил в виде подложки план местности, отрисовал необходимые точки, внес изменения, в том числе пришлось добавить новый тег для отрисовки уникальных полигонов. Сохранил в формате .osm Произвел модификацию файла default.style пакета osm2pgsql чтобы новый тег закидывался в базу. Произвел модификацию файла osm.xml - добавил новый слой и стиль слоя для отрисовки нового тега. Чтобы импортировать свой модифицированный файл .osm пришлось грохнуть всю БД postgre и там теперь только мой регион интереса. Через веб проверяю отрисовку карты - все выводится, мои манипуляции с введением нового тега прошли корректно. В целом задание выполнено и результат можно сдавать.

Но это было пилотное задание и практически сразу потребовалось масштабирование результата и теперь в задача формируется так: иметь возможность двухстороннего взаимодействия с локальной БД по аналогии работы josm и openstreetmaps.com /скачивание региона, внесение изменений, заливка обратно данных/. Так же возможность поддержки актуальных данных osm в базе - то есть периодически заносить в локальную БД дампы глобальной osm, без потери своих изменений. /Вопрос - как и как решать конфликтные ситуации/. Разграничение прав пользователей БД, чтобы разным потребителям локальной БД был доступ только отображению определенного сектора пространства /централизованная схема, когда один сервер на нескольких потребителей, данные будут отображаться через веб, без возможности редактирования, а просто отрисовкой тайлов/. Пока схема примерно такая. Но учитывая то, что мои познания в osm неделю назад равнялись только спонтанному редактированию карт через josm, то мне необходима ваша помочь - через какие средства мне построить такую систему, какие инструменты, связки инструментов использовать для реализации, насколько это вообще возможно?
Спасибо, что дочитали до конца.

Re: Вопрос из разряда "куда смотреть, что делать"

Добавлено: 16 сен 2014, 19:43
trir
Использовать тут OSM - это из пушки по воробьям, всё можно гораздо проще сделать
Пример: http://wiki.gis-lab.info/w/%D0%9F%D1%80 ... 0%B8%D0%B9

А разграничить доступ по областям - можно через Представления (View)

Re: Вопрос из разряда "куда смотреть, что делать"

Добавлено: 17 сен 2014, 01:28
ericsson
Полностью поддерживаю по поводу OSM.
Инфраструктура OSM жестко завязана на специфику этого проекта и приспособить ее под что-то еще - огромный труд, который лишен смысла. Лучше обратить внимание на инструменты из этих http://www.osgeo.org/

Вам нужна база Postgres , в которую вы один раз положите все нужные данные из OSM, далее - используя любое клиентское приложение для редактирования пространственных данных в базе (QGIS, например), подгрузив туда свой план как фоновое изображение, отредактируете свои данные.

Чем именно вы будете эти данные визуализировать - Mapnik, Geoserver, MapServer - все равно. Но если вам нужно будет не только картинку смотреть, но и свойства объектов получать - имеет смысл, например, Geoserver, потому что он умеет WMS/WFS/WCS, а не тупо рисует тайлы для TMS-источника.

Плюс использования этих средств в том, что они взаимодействуют между собой по стандартным протоколам, а не используют узкоспециальные API и форматы. Условно - захотите вы завтра сменить клиентское приложение, заменив QGIS на GlobalMapper - пожалуйста. А с .osm файлами - тупик.

Что касается того, чтобы периодически обновлять базу данными из OSM - это довольно мутная затея, но выполнимая. Есть diff-файлы http://wiki.openstreetmap.org/wiki/Planet.osm/diffs которые вы можете анализировать, написав собственное средство импорта, но боюсь, что обновления нужно будет проводить в полуручном режиме - в OSM как угодно могут меняться идентификаторы, старые объекты могут исчезать, а вместо них - появляться новые, и так далее. Плюс, как вы уже сказали, у вас есть еще критерий объектов, которых не должно быть, потому что их нет в каком-то там официальном плане. Если их нельзя отфильтровать по какому-то признаку, то кроме как ручной периодической проверкой этот вопрос никак не решить.

Re: Вопрос из разряда "куда смотреть, что делать"

Добавлено: 17 сен 2014, 11:45
Sergey Astakhov
Вы хотите редактировать только свои данные или данные OSM тоже?

Если только свои - то завязываться на инструменты OSM не нужно, можно выбрать что поудобнее из множества существующих инструментов (или написать свой), а OSM оставить только подложкой. Если из данных OSM нужно просто что-то скрыть - то это делается редактированием стиля отображения, данные для этого редактировать не нужно.

А вот если нужно редактировать именно данные OSM и потом ещё их постоянно синхронизировать с самим OSM - то это задача уже намного более сложная, поэтому лучше удостоверится что эта сложность вам действительно нужна.