OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2009-11-03 09:04:00

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

pgsql2osm

Начал ваять скриптик для экспорта из базы PostgreSQL+PostGIS в osm xml. Думаю, все должно получиться. Скорость радует - выборка всех нодов в пределах границы Москвы и выборка всех тэгов для них занимает меньше 5 минут на моем не самом быстром сервачке. По сравнению со скачиванием из ксапи - небо и земля. А если еще немного помутить с индексами то, думаю, будет еще быстрее.

Это первый шаг.

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

С радостью заслушаю критику, предлоожения, любые идеи на тему.

Offline

#2 2009-11-03 21:28:00

Calibrator
Member
From: Интернет
Registered: 2009-08-19
Posts: 892

Re: pgsql2osm

Мне думается, что приложение может быстро завоевать популярность, если его выпускать и обновлять от версии к версии и в .exe - варианте. (а на каком языке скриптик?)

Offline

#3 2009-11-05 07:09:55

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: pgsql2osm

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

Технической возможности распространять скрипт не вижу - доступ извне к базе я, естественно, открывать не собираюсь. А база весит за 200 Гб. С дополнительными индексами - за 300.

Скрипт пишется на пхп.

Offline

#4 2009-11-05 12:58:57

Fortress
Member
From: Russia, Saint-Petersburg
Registered: 2009-07-09
Posts: 1,109

Re: pgsql2osm

А может кто-нибудь на пальцах объяснить несведующему зачем он вообще нужен

Offline

#5 2009-11-05 13:43:01

Dmitry Terentiev
Member
From: Мурманск
Registered: 2008-09-05
Posts: 366

Re: pgsql2osm

Fortress wrote:

А может кто-нибудь на пальцах объяснить несведующему зачем он вообще нужен

+1


www.MurmanskOSM.ru - валидатор адресов Мурманской области по данным  http://www.cikrf.ru

Offline

#6 2009-11-05 13:53:05

Ivan Komarov
Member
Registered: 2008-10-02
Posts: 1,050

Re: pgsql2osm

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

Offline

#7 2009-11-06 12:29:06

Fortress
Member
From: Russia, Saint-Petersburg
Registered: 2009-07-09
Posts: 1,109

Re: pgsql2osm

Понятно, т.е. вы хотите сделать альтернативный сервер osm api? Использовать планируете planet.osm? А накколько такие данные будут актуальными? Если я не ошибаюсь planet.osm обновляется раз в неделю...

Offline

#8 2009-11-06 13:10:26

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: pgsql2osm

Из чего сделан вывод об использовании palnet.osm???

Offline

#9 2009-11-06 23:19:06

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

Re: pgsql2osm

а как обходится тот факт, что в постгрес грузятся данные лишь выборочно?
или используется собственный метод импорта / схема базы, отличная от мапниковской? smile


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#10 2009-11-07 01:22:23

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: pgsql2osm

Я так понимаю речь идет не об мапниковской схеме, а о схеме аналогичной осмосисовской или из rails port. Судя по размеру базы грузить ее себе хотят всю.
Вобщем ждем и надеемся. Хотелось бы еще поддержку целостности релейшнов, в т.ч. и вложенных, то есть релейшн в релейшн)
Еще хочется, чтобы можно было скрипт попросить поставить тег какой-то, который говорил бы как относится объект к выбранной области - целиком внутри, частично внутри, за пределами.


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#11 2009-11-08 21:04:47

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: pgsql2osm

База полная, то есть тот из двух вариантов постгрешной базы базы, который осомсис создает под связку постгре+постгис. Вся планета. Грузить я ее не хочу, а уже загрузил и она уже работает. Актуальность максимально возможная, то есть 4 часа отставания от ОСМ, вызванные четырехчасовой задержкой публикации часовых дифов. (На минутные дифы переходить не планирую - там слишком часто ошибки.)

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

Насчет дополнительных тэгов для объектов - не совсем понял... Имеется в виду, что если объект попал на границу, то дополнительно пометить, что его часть ушла за границу? Я думал работать по схеме захвата целиком объекта, даже если он за границу вышел. То есть не обрезать.

Offline

#12 2009-11-08 22:28:28

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: pgsql2osm

Ezhick wrote:

Насчет дополнительных тэгов для объектов - не совсем понял... Имеется в виду, что если объект попал на границу, то дополнительно пометить, что его часть ушла за границу? Я думал работать по схеме захвата целиком объекта, даже если он за границу вышел. То есть не обрезать.

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


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#13 2009-11-08 23:02:24

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: pgsql2osm

Уф... Ну это следующим этапом. Сначала надо освоить просто экспорт и контроль целостности.

Offline

#14 2009-11-09 09:46:43

Fortress
Member
From: Russia, Saint-Petersburg
Registered: 2009-07-09
Posts: 1,109

Re: pgsql2osm

Ezhick wrote:

Из чего сделан вывод об использовании palnet.osm???

Ну не через api же грузить 6Гб.

Ezhick wrote:

Актуальность максимально возможная, то есть 4 часа отставания от ОСМ, вызванные четырехчасовой задержкой публикации часовых дифов.

Ну вот, planet + дифы. Хотя я дилетант в этом вопросе, извините если что-то не так понял.

Last edited by Fortress (2009-11-09 09:46:55)

Offline

#15 2009-11-09 14:25:58

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: pgsql2osm

Первоначальным источником для локальной БАЗЫ является planet.osm, но обновляться это будет уже в базе, соответственно не раз в неделю, а раз в час.

Offline

Board footer

Powered by FluxBB