День добрый.
На свой работе я получил задание, которое до текущего момента не входило в зону моей компетенции. И его надо было сделать практически сразу, поэтому пришлось сначала делать, потом думать. Итак.
Дано: /что уже функционировало/ выделен компьютер на 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, то мне необходима ваша помочь - через какие средства мне построить такую систему, какие инструменты, связки инструментов использовать для реализации, насколько это вообще возможно?
Спасибо, что дочитали до конца.
Вопрос из разряда "куда смотреть, что делать"
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 16 сен 2014, 14:51
- Репутация: 0
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Вопрос из разряда "куда смотреть, что делать"
Использовать тут OSM - это из пушки по воробьям, всё можно гораздо проще сделать
Пример: http://wiki.gis-lab.info/w/%D0%9F%D1%80 ... 0%B8%D0%B9
А разграничить доступ по областям - можно через Представления (View)
Пример: http://wiki.gis-lab.info/w/%D0%9F%D1%80 ... 0%B8%D0%B9
А разграничить доступ по областям - можно через Представления (View)
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вопрос из разряда "куда смотреть, что делать"
Полностью поддерживаю по поводу 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 как угодно могут меняться идентификаторы, старые объекты могут исчезать, а вместо них - появляться новые, и так далее. Плюс, как вы уже сказали, у вас есть еще критерий объектов, которых не должно быть, потому что их нет в каком-то там официальном плане. Если их нельзя отфильтровать по какому-то признаку, то кроме как ручной периодической проверкой этот вопрос никак не решить.
Инфраструктура 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 как угодно могут меняться идентификаторы, старые объекты могут исчезать, а вместо них - появляться новые, и так далее. Плюс, как вы уже сказали, у вас есть еще критерий объектов, которых не должно быть, потому что их нет в каком-то там официальном плане. Если их нельзя отфильтровать по какому-то признаку, то кроме как ручной периодической проверкой этот вопрос никак не решить.
-
- Активный участник
- Сообщения: 218
- Зарегистрирован: 21 дек 2012, 01:57
- Репутация: 52
- Откуда: Питер
Re: Вопрос из разряда "куда смотреть, что делать"
Вы хотите редактировать только свои данные или данные OSM тоже?
Если только свои - то завязываться на инструменты OSM не нужно, можно выбрать что поудобнее из множества существующих инструментов (или написать свой), а OSM оставить только подложкой. Если из данных OSM нужно просто что-то скрыть - то это делается редактированием стиля отображения, данные для этого редактировать не нужно.
А вот если нужно редактировать именно данные OSM и потом ещё их постоянно синхронизировать с самим OSM - то это задача уже намного более сложная, поэтому лучше удостоверится что эта сложность вам действительно нужна.
Если только свои - то завязываться на инструменты OSM не нужно, можно выбрать что поудобнее из множества существующих инструментов (или написать свой), а OSM оставить только подложкой. Если из данных OSM нужно просто что-то скрыть - то это делается редактированием стиля отображения, данные для этого редактировать не нужно.
А вот если нужно редактировать именно данные OSM и потом ещё их постоянно синхронизировать с самим OSM - то это задача уже намного более сложная, поэтому лучше удостоверится что эта сложность вам действительно нужна.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей