You are not logged in.
- Topics: Active | Unanswered
Announcement
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: Как сделать парсинг координат полигонов без скачивания базы данных?
Какой это формат, тк сложно представить мульти полигоны и пути? В Ваш конкретный формат скорее всего прийдётся переводить руками.
Формат данных требуется нестандартный, его понимает плагин вордпресс.
Также можно найти сервисы, позволяющие выгрузить объект в 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: Как сделать парсинг координат полигонов без скачивания базы данных?
отдельно по Зеленограду
вот объет ЗелАО: 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: Как сделать парсинг координат полигонов без скачивания базы данных?
А что за формат-то такой особенный у вордперсс-плагина? Часом не WKT? Если wkt, то преобразовать GeoJSON в WKT можно используя http://geojson.io
С помощью плагина прямо на карте гугл ставятся точки, по которым формируется полигон. В нижнем окне появляется его код. Если код уже есть, то его сразу можно вставить в окно и полигон выстроиться автоматически. Формат кода вы сами видите:
Мне нужно привести данные о координатах полигона именно к такому виду.
Весь алгоритм приведения к нужному виду пока вижу состоящим из следующих этапов:
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: Как сделать парсинг координат полигонов без скачивания базы данных?
Также можно найти сервисы, позволяющие выгрузить объект в 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
#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: Как сделать парсинг координат полигонов без скачивания базы данных?
Динарный, если нужно вытянуть все члены отношения по id, то в запрос надо добавить "/full" на конце и получишь полный комплект всей геометрии отношения в osm xml
http://www.openstreetmap.org/api/0.6/re … 72909/full
Ага, я уже и примеры приводил 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: Как сделать парсинг координат полигонов без скачивания базы данных?
Да я и до сих пор понять не могу, как эти данные xml преобразовать в WKT, GeoJSON или poly. Подскажите куда его скопировать, чтобы преобразовать?
Offline
#20 2015-12-22 21:27:18
- tbicr
- Member
- Registered: 2014-04-02
- Posts: 197
Re: Как сделать парсинг координат полигонов без скачивания базы данных?
Я видимо в первый раз не понял что с этим xml делать, поэтому проигнорировал Ваше сообщение. Да я и до сих пор понять не могу, как эти данные xml преобразовать в WKT, GeoJSON или poly. Подскажите куда его скопировать, чтобы преобразовать?
А тело обектов можно конвертировать в 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: Как сделать парсинг координат полигонов без скачивания базы данных?
d1g wrote:Я не нашёл как ему скормить osm xml чтобы он его понял.
Open, file ...
geoJSON, TopoJSON, GTFS, KML, CSV, GPX and OSM XML supported
Если знаете 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: Как сделать парсинг координат полигонов без скачивания базы данных?
Open, file ...
geoJSON, TopoJSON, GTFS, KML, CSV, GPX and OSM XML supported
Как открыть файл я знаю, спасибо конечно за помощь, но я ещё пока в состоянии это сделать.
Проблема, как xml-содержимое из браузера сохранить в файл:
Offline
#23 2015-12-23 14:40:30
- wowik
- Member

- From: Zelenograd
- Registered: 2009-09-29
- Posts: 9,369
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: Как сделать парсинг координат полигонов без скачивания базы данных?
Сохранить удалось, но открыть на http://geojson.io/ не удалось. Открываю сохранённый файл, он вроде как открылся, но конвертироваться в geoJSON не хочет, пустой файл на выходе.
Offline