Синхронизация с OSM

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

Синхронизация с OSM

Сообщение valeria » 16 янв 2012, 16:27

Здравствуйте.Недавно заинтересовал такой вопрос.Все мы знаем что есть расшаренные шейп-файлы большинства странн, и так же знаем что эти данные обновляются буквально ежедневно , и вот возик вопрос я скачала эти шейп-файлы ,закинула их в базу данных постгре , но мне бы хотелось чтоб мои данные также обновлялись часто , возможно ли сделать какую либо синхронизацию с базой OSM? либо как-то обновлять.заранее спасибо

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Синхронизация с OSM

Сообщение SS_Rebelious » 16 янв 2012, 16:35

Cинхронизироваться, наверное, удобней будет с базой выгрузок OSM.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

Re: Синхронизация с OSM

Сообщение valeria » 17 янв 2012, 10:32

может есть идеи как сделать эту синхронизацию автоматической

Pifagoroff
Интересующийся
Сообщения: 34
Зарегистрирован: 19 дек 2011, 20:24
Репутация: 0
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Pifagoroff » 17 янв 2012, 10:54

Я так думаю, простыми "домашними" средствами этого не сделаешь, нужно писать программу, например на C# . Последовательность шагов программы такая. Программа (так называемый бот) заходит на сайт, скачивает архив. Распаковывает архив, загоняет шейп файлы в базу. Потом в Windows создаётся расписание, которое, скажем, раз в сутки запускает данную программу. Как-то так, но по-моему, не стоит писать такую программу, кому нужна эта «автоматизация». Хотя написать такую программку и не сложно, но в случае, если что-то поменяется на сайте или поменяются название атрибутов в шейп файлах всё пойдёт прахом и программу придётся переписывать.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Синхронизация с OSM

Сообщение ericsson » 17 янв 2012, 11:03

Зачем C# если есть batch- и shell-скрипты (не знаю, какая ОС у топикстартера)?
По расписанию (планировщики есть в любой ОС) можно запускать такой файл, который будет использовать curl или wget для скачивания нужных файлов, а затем выполнять обновление, пользуясь интерфейсом командной строки базы.

Pifagoroff
Интересующийся
Сообщения: 34
Зарегистрирован: 19 дек 2011, 20:24
Репутация: 0
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Pifagoroff » 17 янв 2012, 11:37

ericsson писал(а):ачем C# если есть batch- и shell-скрипты (не знаю, какая ОС у топикстартера)?
А затем, что мне нравится C#! А кому нравится писать shell скрипты и curl - пожалуйста, я не возражаю, можно писать и скрипты. Но по любому, очень может быть, что придётся, скажем, парсить вебстраничку регулярными выражениями и так далее, так что скрипт-ли, программа на C#, а повозиться придётся...

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Синхронизация с OSM

Сообщение ericsson » 17 янв 2012, 11:46

Мое возражение касалось фразы Я так думаю, простыми "домашними" средствами этого не сделаешь, нужно писать программу, например на C#. Вызов двух команд из командника - это как раз "домашнее средство" не требующее программирования.
Парсить регулярными выражениями, если надо, можно и grep'ом в той же командной строке. Правда, в надобности этого я глубоко сомневаюсь, потому что измениться может всё, от URL страницы до имен файлов, а писать интеллектуальный анализатор содержимого сайта, автоматически обнаруживающий искомые файлы с любыми именами и в любом месте - это уже из разряда развлечений, а не решения конкретной задачи синхронизации. Куда проще в команднике (или стороннем текстовике) задать нужные URLы и сделать простую проверку на их существование.
Все это справедливо для этого конкретного случая.

Pifagoroff
Интересующийся
Сообщения: 34
Зарегистрирован: 19 дек 2011, 20:24
Репутация: 0
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Pifagoroff » 17 янв 2012, 12:11

ericsson писал(а):Вызов двух команд из командника - это как раз "домашнее средство" не требующее программирования.
Где же двух?

1. Скачать файл с помощью curl
2. Распаковать архив во временную папку
3. Загнать нужные шейп файлы в базу, при этом возможно потребуется хитрая логика. Скажем не полностью перезаписывать данные, а обновлять, неизвестно, что и как.
4. И всё это повторить для разных регионов.

Если всё так просто, то почему же не прилагается такой скриптик для автоматического обновления базы постгис? Кстати, как вариант можно воспользоваться готовой базой постгис http://gis-lab.info/qa/openbase.html и качать напрямую из базы Гис-лаб в локальную, но вряд ли Гислаб обрадуется такому решению…

Аватара пользователя
Komяpa
Интересующийся
Сообщения: 16
Зарегистрирован: 13 сен 2009, 11:24
Репутация: 0
Откуда: Minsk
Контактная информация:

Re: Синхронизация с OSM

Сообщение Komяpa » 17 янв 2012, 12:15

Простите что прерываю, а штатное средство для ежеминутной репликации базы OSM/pgsql не подходит? Настраивается в три команды, надёжно как гвоздь.

http://wiki.openstreetmap.org/wiki/Minutely_Mapnik
[OSM BY Team]
[http://latlon.org/] [jabber: me@komzpa.net] [mobile: +375257407159]

Pifagoroff
Интересующийся
Сообщения: 34
Зарегистрирован: 19 дек 2011, 20:24
Репутация: 0
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Pifagoroff » 17 янв 2012, 12:28

Komяpa писал(а):Простите что прерываю, а штатное средство для ежеминутной репликации базы OSM/pgsql не подходит? Настраивается в три команды, надёжно как гвоздь.

http://wiki.openstreetmap.org/wiki/Minutely_Mapnik

Возможно и подходит, но в этом случае из цепочки исключаются шейп файлы с Гис-лаб...

Аватара пользователя
Komяpa
Интересующийся
Сообщения: 16
Зарегистрирован: 13 сен 2009, 11:24
Репутация: 0
Откуда: Minsk
Контактная информация:

Re: Синхронизация с OSM

Сообщение Komяpa » 17 янв 2012, 12:38

Pifagoroff писал(а):Возможно и подходит, но в этом случае из цепочки исключаются шейп файлы с Гис-лаб...
А ничего, что они делаются из такой же самой базы? :3
[OSM BY Team]
[http://latlon.org/] [jabber: me@komzpa.net] [mobile: +375257407159]

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Синхронизация с OSM

Сообщение ericsson » 17 янв 2012, 12:46

Pifagoroff писал(а):
Где же двух?

1. Скачать файл с помощью curl
2. Распаковать архив во временную папку
3. Загнать нужные шейп файлы в базу, при этом возможно потребуется хитрая логика. Скажем не полностью перезаписывать данные, а обновлять, неизвестно, что и как.
4. И всё это повторить для разных регионов.
Да, не двух, а трех. :) Есть в русском языке такая норма, говорить "пара" или "два" для обозначения малого числа, меньше десятка. Если это цикл for .. do, читающий URLы из внешнего файла, то пункт 4 содержит в себе первые три. А третий - это вопрос к SQL-запросу.
Pifagoroff писал(а): Если всё так просто, то почему же не прилагается такой скриптик для автоматического обновления базы постгис? Кстати, как вариант можно воспользоваться готовой базой постгис http://gis-lab.info/qa/openbase.html и качать напрямую из базы Гис-лаб в локальную, но вряд ли Гислаб обрадуется такому решению…
Странный аргумент. Во-первых, как уже сказано ниже, есть уже "готовый скриптик" для этих данных, правда, не для гис-лаба, но делает-то то же самое. Во-вторых, у всех задачи разные, потому зачем плодить сущности и делать работу непонятно для кого непонятно какую?

Pifagoroff
Интересующийся
Сообщения: 34
Зарегистрирован: 19 дек 2011, 20:24
Репутация: 0
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Pifagoroff » 17 янв 2012, 13:39

Komяpa писал(а):
Pifagoroff писал(а):Возможно и подходит, но в этом случае из цепочки исключаются шейп файлы с Гис-лаб...
А ничего, что они делаются из такой же самой базы? :3

Вы товарисч, задаёте неудобные вопросы. Вы что же, ставите под сомнение ценность проекта Гис-Лаб по формированию шейп файлов? http://gis-lab.info/projects/osm-export.html . А многие этими файлами пользуются и я в том числе...

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Синхронизация с OSM

Сообщение Максим Дубинин » 17 янв 2012, 17:28

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

Аватара пользователя
Aleksandr Dezhin
Активный участник
Сообщения: 244
Зарегистрирован: 03 фев 2010, 10:47
Репутация: 14
Откуда: Москва

Re: Синхронизация с OSM

Сообщение Aleksandr Dezhin » 17 янв 2012, 17:41

Pifagoroff, ценность шейп файлов из осм на гис-лабе не в том, что делается что-то уникальное. Механизм действительно так или иначе основан на osm2pgsql и секрета в этом никакого нет. Ценность в наличии материалов готовых к использованию.

Что касается обновления, то этот вопрос уже поднимался неоднократно. Обсуждались разные варианты, от копирования через pg_dump до репликации на уровне PostgreSQL.

Итак, варианты:

1) Пойти по пути, который предложил Котяра. Это хороший вариант, он довольно гибок. Но есть и свои проблемы, например, если вам нужна обрезка по точной границе из ОСМ, то это не очень тривиальная задачка и ее придется решать самостоятельно. Но опять таки не факт, что вам такая обрезка нужна.

2) Копирование через pg_dump нужных таблиц. В принципе работать будет, но возможно создаст сильную нагрузку на наш сервер. Плюс возможны некоторые проблемы из за разных версий postgresql и postgis

3) Самое простое решение, скрипт который будет раз в день/неделю/месяц скачивать нужные шейп файлы с сервера гис-лаба и загружать их в ваш postgresql.

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя