Завантаження даних OpenStreetMap


43

Чи існує прямий спосіб завантаження даних з OpenStreetMap (OSM)?

Використовуючи Північну Америку як приклад, я розумію, що Cloudmade (Cloudmade більше не забезпечує завантаження OSM) та Geofabrik ( http://download.geofabrik.de/osm/north-america/ ) забезпечують завантаження, але файли величезні (0,5 gb - 4gb). Я також спробував використовувати панель інструментів QGIS-OSM, але мені це не пощастило, так як подібно до веб-сайту OSM, область, яку ви можете вибрати, дуже мала. Кількість даних, які я хочу завантажити, знаходиться на рівні міста.

Нарешті, чи легко використовувати дані OSM? Якщо я OpenStreetMap XML Dataвирішу завантажити, я не можу відкрити файли osm.xml за допомогою QGIS (навіть за допомогою функції імпорту панелі інструментів QGIS-OSM). Цікаво, чи я пропускаю більш очевидний спосіб поводження з даними.


Я просто хочу вказати на дуже корисний клон StackExchange для допомоги у питаннях, пов’язаних із OSM! http://help.openstreetmap.org/


1
але файли величезні ?? (0,5 ГБ - 4 ГБ) немає у світі ГІС - 5 ТБ + стає нормальним
Mapperz

вибачте - величезний для моєї хитрої машини. Не стільки 0,5 Гб, але 4 Гб для мене некерований!
djq

Вивчивши це трохи більше, я вважаю, що дані, надані геофабриком, більш вичерпні, ніж хмарна.
djq

1
@Nathanus Признаюсь, я щойно зареєструвався ..... Це правда, але це дійсно фокусується на кожній дрібниці про OSM, багато з яких пов'язані з програмуванням, а не стосуються GIS. Хоча якби існували субіти, це було б ідеально. Шрифти тут набагато чіткіші!
djq

1
@djq Сайт завантаження CloudMade повертає 404 зараз - можливо, його припинили ?
Стівен Ведучий

Відповіді:


33

JOSM

Мабуть, найпростіша відповідь на обидві частини вашого питання - це використовувати JOSM. Редактор Java OpenStreetMap . Завантажувати дані легко і легко "використовувати" дані.

Для завантаження JOSM надає простий інтерфейс, який дозволяє вибрати прямокутну область для завантаження, проте вона завантажує це через API редагування. Це відхилить будь-який запит, який є занадто великим, і якщо він трохи завеликий, він витратить довгий час на його роздуми. Як правило, ціле місто занадто велике, але, можливо, ви зможете отримати гарний шматок даних, запитуючи кілька прямокутних областей.

Для "використання" даних JOSM дозволяє вам бачити дані та мати хороший поштовх у всіх тегах. Функція пошуку є досить потужною, дозволяє вибирати елементи з певними тегами, але крім того, це дійсно залежить від того, який тип використання ви маєте на увазі. Ви можете налаштувати спосіб відображення даних JOSM певною мірою, але для приємного вигляду карт ви, мабуть, захочете переглянути інструменти візуалізації, призначені для роботи з файлами OSM. Ви також можете подивитися на перетворення, наприклад, у shapefile , але, маючи на увазі, дані є ... різними ... до того, до чого ви могли б звикнути, тому це перетворення завжди трохи втрачає.

Як осторонь ... Хоча це досить приємний переглядач даних, головна мета JOSM - це редактор OpenStreetMap . Просто натисніть «Завантажити», щоб повернути зміни до OpenStreetMap (вам потрібно буде створити обліковий запис OpenStreetMap). Якщо ви ще не спробували редагування OpenStreetMap, ви дійсно повинні . Кожен, хто має навіть цікавий інтерес до карт, повинен дати цьому піти. Додайте на карту свій місцевий ресторан чи щось подібне. Це єдиний спосіб правильно зрозуміти OpenStreetMap, і це весело!

Більші файли

Що робити, якщо місто занадто велике для завантаження в JOSM? Є деякі інші варіанти (як показано нижче), але якщо ви маєте справу з такою кількістю даних, то не уникнути факту, що це "використовувати" буде трохи важко. Ви насправді вийшли з сфери веселих маленьких інструментів графічного інтерфейсу та перейшли в ГІС великих даних. Найпростішим записом до цього (що не все так просто) було б, ймовірно, завантаження великого файлу .osm в базу даних PostGIS за допомогою osm2pgsql , а потім використовувати інструменти для нагляду GIS для його перегляду.

Міські виписки

Цей сервіс download.bbbike.org пропонує готові завантаження для деяких міст світу.

Осмоз

Якщо вам потрібно інше місто або інше обмежувальне поле, вам потрібно отримати одне з масових завантажень, про яке ви згадали (або витяг країни , або всю планету ), а потім витягніть з нього частинку.

осмос - це найпоширеніший інструмент для цього. Це інструмент командного рядка java, який дозволяє вам витягувати обмежувальне поле в командному рядку Unix таким чином:

bzcat downloaded.osm.bz2 | osmosis\
  --read-xml enableDateParsing=no file=-\
  --bounding-box top=49.5138 left=10.9351 bottom=49.3866 right=11.201 --write-xml file=-\
  | bzip2 > extracted.osm.bz2

Це показує, як ви, як правило, уникаєте заповнення диска роздутими XML-даними, розпаковуючи файл .bz2, переводячи вихід у осмос, а потім знову переводячи отриманий XML у файл bzipped.

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


Я використовував JOSM - це дуже приємно. Однак мене цікавлять великі обсяги даних, як правило, це ціле місто, яке я не можу зробити в ньому.
djq

Я відповів на відповідь, щоб розглянути деякі варіанти роботи з більшими файлами. На жаль, не так просто, але надія, яка допомагає.
Гаррі Вуд

Дякую @Harry. Я в кінцевому рахунку використовував osmosisна Linux і це працювало чудово. В даний час я хочу використовувати цю налаштування на Win 7, і я з задоволенням бачу, що є .exebzcat. Востаннє я перевіряв, чи не було. На жаль, здається, що це не простий спосіб використання osm2pgsqlв Windows, інакше це мій ідеальний вибір.
djq

24

Завантаження за допомогою OSM за допомогою QGIS

введіть тут опис зображення

http://mapperz.blogspot.com/2009/11/openstreetmap-data-on-demand-with.html


2
+1 Вау, що це було давньо! Ви відповіли на це запитання за 16 місяців до того, як воно навіть з’явилося :-).
whuber


Лише зауваження щодо цього - воно працює над поточним випуском QGIS, який я використовую (1.7), але він дозволяє завантажувати лише дуже невеликі області.
djq

цитата з блогу Mapperz "Дані було завантажено безпосередньо з серверів відкритих карт карток [найновіші дані]. ** Є обмеження на площі, керовані серверами OpenStreetMap; плагін попередить вас про це питання, якщо потрібно"
Mapperz

@celenius: обмеження розміру існує, оскільки цей веб-сервіс OSM призначений для цілей картографування (тобто завантаження невеликих областей, їх редагування та завантаження назад). Використовувати його лише для цілей лише для читання, як правило, насувається, оскільки це обтяжує вже перенапружену інфраструктуру OSM.
Ігор Брейц

15

Проста відповідь - ні, немає швидкого і простого способу зробити це. Якщо ви хочете отримати дані про рівень міста для всієї Північної Америки, це буде величезний файл. Якщо ви хочете меншу площу, то CloudMade зробіть стан за файлами стану. Ви можете побачити мої нотатки про процес на веб- сайті http://ian01.geog.psu.edu/geoserver_docs/data/openstreetmap/osm.html, але мені не було дуже весело. Я почав дивитися на осмос (http://wiki.openstreetmap.org/wiki/Osmosis), але закінчився час, перш ніж я змусив його зробити багато, але це може бути вирішенням вашої проблеми.

Щодо використання даних OSM, ви можете або скористатися їх нестандартним / неогеогрпахійним підходом і використовувати mapnik тощо, або імпортувати дані в PostGIS і змусити їх працювати в деяких належних інструментах ГІС.


6

Підказка @ iant, якщо ви шукаєте лише дані США, чому б не розглянути можливість просто скачати рівень "держава за станом" для вашої конкретної області з Cloudmade ? І якщо вашою цікавою областю може бути лише декілька даних про стан держави, найпростішим способом використання даних було б завантаження виписок формфайлу ( приклад штату Орегон ), які можна використовувати практично в будь-якій загальній програмі ГІС.


Оновлення: Cloudmade давно минув, але в наші дні служба завантаження геофабриків пропонує завантаження штатів для США тут: download.geofabrik.de/north-america.html
Гаррі Вуд

4

Напевно, найпростішим і найпростішим способом завантаження даних OSM для довільної області карт було б використання одного з серверів OSMXAPI . OSMXAPI API призначений для використання лише для читання доступу до геоданих. дані (на відміну від первинного API OSM, орієнтованого на редагування ). Він також дозволяє завантажувати більші області, ніж основний API.

Один із способів доступу до OSMXAPI - це використання вкладки Експорт на веб- сайті http://www.openstreetmap.org/ (виберіть перемикач "OpenStreetMap XML Data" ).


У вас є рекомендований сервер? Я спробував кілька і отримав помилки в тайм-ауті (я думаю). Я з тих пір працюю з копією всієї земної кулі на локальному комп’ютері.
djq

Зазвичай я користуюся цим: open.mapquestapi.com/xapi/api/0.6 .
Ігор Брейц

1
OSMXAPI завжди був дещо дивний, і в наші дні більше не існує служб, що працює. Найближчий еквівалент є більш потужним Overpass_API , але є кілька інших сайтів , які роблять це занадто extract.bbbike.org і export.hotosm.org
Гаррі Вуд

3

Зараз компанія WeoGeo дозволяє безкоштовно завантажувати дані OpenStreetMap. Ви можете накреслити контур області, для якої потрібно отримати дані, і створити файл.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.