You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2015-12-18 19:05:54

Динарный
Member
Registered: 2015-12-18
Posts: 9

Как сделать парсинг координат полигонов без скачивания базы данных?

Здравствуйте уважаемые знатоки-картографисты.
Возникла необходимость получить координаты административных границ нескольких населённых пунктов.  Мне по сути нужны координаты нескольких населённых пунктов и некоторых автомобильных дорог, поэтому скачивать фрагменты базу данных на локальный диск не вариант.
К примеру, вот здесь есть карта Москвы:
http://www.openstreetmap.org/relation/102269
Существует ли способ собрать координаты точек с этой страницы?
В результате мне нужно получить данные в таком формате:
(66.68082606606005, -18.6328125),(66.11784630536273, -10.72265625),
(62.82706207783542, -10.634765625),(62.544753073521996, -20.654296875),

Через поиск по форуму мне удалось найти лишь слишком сложные решения. Большая просьба: подскажите пошаговый алгоритм, как решить задачу. Если он уже где-то расписан, то дайте хотя бы ссылку на него.

Offline

#2 2015-12-19 10:33:32

kastellano
Member
Registered: 2014-01-15
Posts: 229
Website

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Динарный, попробуйте http://overpass-turbo.eu/ использовать. Как по номеру отношения его найти я не знаю, но по уникальному значению тегов вот пример http://overpass-turbo.eu/s/dkl (на "старт" нажмите, что бы увидеть результат, "экспорт" сохраняет в разных форматах). Так же справку почитайте http://wiki.openstreetmap.org/wiki/Over … uage_Guide и тему http://forum.openstreetmap.org/viewtopic.php?id=23653

Offline

#3 2015-12-19 12:56:48

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,369

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Если знаете id объектов, то весь объект с потрохами (или без) качается через API:
http://wiki.openstreetmap.org/wiki/API_ … 3id.2Ffull

Вот Москва
с потрохами http://www.openstreetmap.org/api/0.6/re … 02269/full
без потрохов http://www.openstreetmap.org/api/0.6/relation/102269

Last edited by wowik (2015-12-19 13:33:05)

Offline

#4 2015-12-19 13:52:26

tbicr
Member
Registered: 2014-04-02
Posts: 197

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Какой это формат, тк сложно представить мульти полигоны и пути? В Ваш конкретный формат скорее всего прийдётся переводить руками. Предположим Вас устраивает geojson из которого в пару строчек кода можно привести в желаемый формат.

Для того чтобы получить геометрию Вам нужно знать либо osm_id, либо знать как их получить (теги), либо иметь тело нужных объектов.
Overpass позволяте искать объекты по id, тегам, вложенности геометрии. Также позволяет выгрузить тело osm объектов (см. вкладку Data) или их id (csv).
Через апи можно выгрузить тело объектов по id.
А тело обектов можно конвертировать в geojson, первое что попалось: http://tyrasd.github.io/osmtogeojson/
Также можно найти сервисы, позволяющие выгрузить объект в geojson зная id: http://polygons.openstreetmap.fr/.

Offline

#5 2015-12-20 21:13:09

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

tbicr wrote:

Какой это формат, тк сложно представить мульти полигоны и пути? В Ваш конкретный формат скорее всего прийдётся переводить руками.

Формат данных требуется нестандартный, его понимает плагин вордпресс.

tbicr wrote:

Также можно найти сервисы, позволяющие выгрузить объект в geojson зная id: http://polygons.openstreetmap.fr/.

Спасибо. Данный ресурс оказался полезным: в результате выдаёт почти готовый перечень координат полигона по id объекта. Для финишной подгонки под нужный формат придётся делать софт для автоматической обработки. Нужно поменять скобки с квадратных на круглые, и убрать кое где двойные и тройные скобки. Есть ещё одна проблема, карта Москвы состоит примерно из десятка разных полигонов, но мой плагин за один раз умеет построить только один, соответственно весь код нужно будет разделять на составляющие. Нельзя ли как-нибудь вывести полигон отдельно по Зеленограду или по Западному административному округу Москвы?

Offline

#6 2015-12-21 07:57:46

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

А что за формат-то такой особенный у вордперсс-плагина? Часом не WKT? Если wkt, то преобразовать GeoJSON в WKT можно используя http://geojson.io


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#7 2015-12-21 08:01:44

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Или OGR.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#8 2015-12-21 08:07:34

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Да, если вордпрес плагин - это MapBB, то в его формат можно конвертировать, используя http://share.mapbbcode.org/


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#9 2015-12-21 08:09:08

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,369

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Динарный wrote:

отдельно по Зеленограду

вот объет ЗелАО: http://www.openstreetmap.org/relation/1320358

Last edited by wowik (2015-12-21 08:09:21)

Offline

#10 2015-12-21 14:36:08

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

dkiselev wrote:

А что за формат-то такой особенный у вордперсс-плагина? Часом не WKT? Если wkt, то преобразовать GeoJSON в WKT можно используя http://geojson.io

С помощью плагина прямо на карте гугл ставятся точки, по которым формируется полигон. В нижнем окне появляется его код. Если код уже есть, то его сразу можно вставить в окно и полигон выстроиться автоматически. Формат кода вы сами видите:
h_1450703558_9642807_15c21a7cb2.jpg

Мне нужно привести данные о координатах полигона именно к такому виду.
Весь алгоритм приведения к нужному виду пока вижу состоящим из следующих этапов:
1) Делается запрос в поиске на нужный населённый пункт на OpenStreetMap и выбирается нужный пункт из результатов выдачи.
2) ID объекта копируется по нему делается запрос на polygons.openstreetmap.fr
3)Cкачивается GeoJSON
4) С помощью самописного скрипта из GeoJSON вытягиваются координаты и и приводятся к формату, который распознаётся плагином.

Offline

#11 2015-12-21 17:54:13

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

tbicr wrote:

Также можно найти сервисы, позволяющие выгрузить объект в geojson зная id: http://polygons.openstreetmap.fr/.

Вы случаем не знаете подобных сервисов, только не для полигонов, а для трасс, где по id объекта можно выгрузить координаты? А то я даже не знаю, что в поисковике набирать, чтобы найти нечто подобное.

Offline

#12 2015-12-21 19:07:44

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Каких трасс, трасс чего?


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#13 2015-12-21 20:48:45

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Не трасс, а дорог. И зуб даю, вы с ним одно лицо.

Offline

#14 2015-12-21 22:29:24

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

BushmanK wrote:

Каких трасс, трасс чего?

Дорог, таких как эта

freeExec wrote:

Не трасс, а дорог. И зуб даю, вы с ним одно лицо.

Это я и есть

Offline

#15 2015-12-22 01:36:26

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Как сделать парсинг координат полигонов без скачивания базы данных?


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#16 2015-12-22 08:11:34

pfg21
Member
From: Чебоксары
Registered: 2012-10-18
Posts: 4,284

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Динарный, если нужно вытянуть все члены отношения по id, то в запрос надо добавить "/full" на конце и получишь полный комплект всей геометрии отношения в osm xml
http://www.openstreetmap.org/api/0.6/re … 72909/full

Offline

#17 2015-12-22 09:04:41

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,369

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Ага, я уже и примеры приводил http://forum.openstreetmap.org/viewtopi … 58#p566958 .

Last edited by wowik (2015-12-22 09:05:35)

Offline

#18 2015-12-22 11:32:44

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

pfg21 wrote:

Динарный, если нужно вытянуть все члены отношения по id, то в запрос надо добавить "/full" на конце и получишь полный комплект всей геометрии отношения в osm xml
http://www.openstreetmap.org/api/0.6/re … 72909/full

wowik wrote:

Ага, я уже и примеры приводил http://forum.openstreetmap.org/viewtopi … 58#p566958 .

Я видимо в первый раз не понял что с этим xml делать, поэтому проигнорировал Ваше сообщение. Да я и до сих пор понять не могу, как эти данные xml преобразовать в WKT, GeoJSON или poly. Подскажите куда его скопировать, чтобы преобразовать?

Offline

#19 2015-12-22 18:08:26

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Динарный wrote:

Да я и до сих пор понять не могу, как эти данные xml преобразовать в WKT, GeoJSON или poly. Подскажите куда его скопировать, чтобы преобразовать?

http://geojson.io/

Offline

#20 2015-12-22 21:27:18

tbicr
Member
Registered: 2014-04-02
Posts: 197

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Динарный wrote:

Я видимо в первый раз не понял что с этим xml делать, поэтому проигнорировал Ваше сообщение. Да я и до сих пор понять не могу, как эти данные xml преобразовать в WKT, GeoJSON или poly. Подскажите куда его скопировать, чтобы преобразовать?

tbicr wrote:

А тело обектов можно конвертировать в geojson, первое что попалось: http://tyrasd.github.io/osmtogeojson/

Гуглить `osm xml to geojson`.

Я не нашёл как ему скормить osm xml чтобы он его понял.

Offline

#21 2015-12-23 06:28:42

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

tbicr wrote:

Я не нашёл как ему скормить osm xml чтобы он его понял.

Open, file ...

geoJSON, TopoJSON, GTFS, KML, CSV, GPX and OSM XML supported

wowik wrote:

Если знаете id объектов, то весь объект с потрохами (или без) качается через API:
http://wiki.openstreetmap.org/wiki/API_ … 3id.2Ffull

Вот Москва
с потрохами http://www.openstreetmap.org/api/0.6/re … 02269/full

Last edited by d1g (2015-12-23 06:32:47)

Offline

#22 2015-12-23 14:36:12

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

d1g wrote:

Open, file ...

geoJSON, TopoJSON, GTFS, KML, CSV, GPX and OSM XML supported

Как открыть файл я знаю, спасибо конечно за помощь, но я ещё пока в состоянии это сделать.
Проблема, как xml-содержимое из браузера сохранить в файл:
FluxBB bbcode test

Offline

#23 2015-12-23 14:40:30

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 9,369

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

wget в помошь! Или аналог (curl)

А вообще-то у меня FF через File|Save As... сохраняет XML , или у вас меню в FF не включено?
Тогда сохранить страницу будет Ctrl-S

Last edited by wowik (2015-12-23 15:06:21)

Offline

#24 2015-12-23 15:07:57

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

Ctrl + S либо ⌘ + S.
А меню в Win/Lin можно показать нажатием Alt.

Last edited by Hind (2015-12-23 15:08:21)

Offline

#25 2015-12-23 15:18:00

Динарный
Member
Registered: 2015-12-18
Posts: 9

Re: Как сделать парсинг координат полигонов без скачивания базы данных?

wowik wrote:

wget в помошь! Или аналог (curl)

А вообще-то у меня FF через File|Save As... сохраняет XML , или у вас меню в FF не включено?
Тогда сохранить страницу будет Ctrl-S

Сохранить удалось, но открыть на http://geojson.io/ не удалось. Открываю сохранённый файл, он вроде как открылся, но конвертироваться в geoJSON не хочет, пустой файл на выходе.

Offline

Board footer

Powered by FluxBB