Загрузка данных OpenStreetMap

43

Существует ли простой способ загрузки данных из OpenStreetMap (OSM)?

Используя пример Северной Америки, я понимаю, что Cloudmade (Cloudmade больше не обеспечивает загрузку OSM) и Geofabrik ( http://download.geofabrik.de/osm/north-america/ ) обеспечивают загрузку, но файлы огромны (0.5 ГБ - 4 ГБ). Я также пытался использовать панель инструментов QGIS-OSM, но мне не очень повезло, поскольку, как и на сайте OSM, область, которую вы можете выбрать, очень мала. Объем данных, которые я хочу загрузить, находится на уровне города.

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


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

djq
источник
1
но файлы огромные ?? (
0,5 ГБ
извините - огромный для моей маленькой машины. Не так много 0.5gb, но 4gb для меня неуправляемо!
DJQ
Изучив это немного подробнее, я нахожу данные, предоставленные геофабрикой, более полными, чем облачные.
DJQ
1
@ Натанус Признаюсь, я только что зарегистрировался ..... Это правда, но на самом деле он сосредоточен на каждой мелочи, касающейся OSM, многие из которых связаны с программированием, а не с ГИС. Хотя, если бы существовали дочерние сайты, они были бы идеальными. Шрифты здесь намного четче!
DJQ
1
@djq сайт загрузки CloudMade возвращается 404 сейчас - это , возможно, было прекращено ?
Стивен Лид

Ответы:

33

JOSM

Возможно, самый простой ответ на обе части вашего вопроса, это использовать JOSM. Редактор Java OpenStreetMap . Это легко загружать данные и легко "использовать" данные.

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

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

Как в стороне ... Хотя это достаточно хороший просмотрщик данных, основная цель JOSM - быть редактором OpenStreetMap . Просто нажмите «загрузить», чтобы отправить изменения обратно в OpenStreetMap (вам нужно создать учетную запись OpenStreetMap). Если вы еще не пробовали редактирование OpenStreetMap, вам действительно следует это сделать . Любой, кто даже интересуется картами, должен попробовать. Добавьте свой местный ресторан на карту или что-то в этом роде. Это единственный способ получить правильное представление об OpenStreetMap, и это весело!

Большие файлы

Что делать, если город слишком велик для загрузки в JOSM? Существуют и другие варианты (как указано ниже), но когда вы работаете с таким количеством данных, нельзя избежать того факта, что его будет немного сложно «использовать». Вы действительно вне сферы забавных маленьких инструментов GUI и в ГИС больших данных. Самым простым входом в это (что не так просто), вероятно, было бы загрузить большой файл .osm в базу данных PostGIS с помощью osm2pgsql , а затем использовать инструменты рабочего стола ГИС для его просмотра.

Городские экстракты

Этот сервис 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.

Так что, возможно, это не соответствует вашему определению «easy», но osmosis - это полезный инструмент, который можно использовать, если вы заинтересованы в манипулировании большими файлами .osm. Вам просто нужно выяснить правильную команду! (хорошая тема для другого вопроса, я думаю)

Гарри Вуд
источник
Я использовал JOSM - это очень приятно. Тем не менее, меня интересуют большие объемы данных, как правило, целый город, который я не могу сделать в нем.
DJQ
Я расширил ответ, чтобы перейти к некоторым вариантам работы с большими файлами. К сожалению, не так просто, но надеюсь, что это поможет.
Гарри Вуд
Спасибо, Гарри. Я в конечном итоге использовать osmosisна Linux, и он работал нормально. В настоящее время я хочу использовать эту установку на Win 7, и я рад видеть, что есть .exebzcat. В прошлый раз, когда я проверял, там не было. К сожалению, osm2pgsqlв Windows нет простого способа использования , иначе это был бы мой идеальный выбор.
DJQ
24

Загрузка OSM с QGIS по требованию

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

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

Mapperz
источник
2
+1 Вау, это было предсказуемо! Вы ответили на этот вопрос за 16 месяцев до его появления :-).
whuber
1
У меня есть конденсатор Flux en.wikipedia.org/wiki/DeLorean_time_machine#Flux_capacitor
Mapperz
Просто обратите внимание на это - он работает с текущей версией QGIS, которую я использую (1.7), но он позволяет загружать только очень маленькие области.
DJQ
цитата из блога Mapperz «Данные были загружены непосредственно с серверов Open Street Map [самые последние данные]. ** Существуют ограничения области, контролируемые серверами OpenStreetMap, плагин предупредит вас об этой проблеме, если потребуется»
Mapperz
@celenius: ограничение размера существует, потому что этот веб-сервис OSM предназначен для картографирования (т.е. загрузки небольших областей, их редактирования и обратной загрузки). Использование его только для целей только для чтения, как правило, не одобряется, поскольку оно обременяет уже перегруженную инфраструктуру OSM.
Игорь Брейц
15

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

Что касается использования данных OSM, вы можете либо использовать их нестандартный / неоогеографический подход и использовать mapnik и т. Д., Либо импортировать данные в PostGIS и заставить их работать в некоторых надлежащих инструментах ГИС.

Ян Тертон
источник
6

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

RyanDalton
источник
Обновление: Cloudmade давно прошло, но в эти дни служба загрузки geofabrik предлагает государственные загрузки для США здесь: download.geofabrik.de/north-america.html
Harry Wood
4

Вероятно, самый простой и чистый способ загрузки данных OSM для произвольной области карты - использовать один из серверов OSMXAPI . OSMXAPI API предназначен для доступа только для чтения к гео. данные (в отличие от основного OSM API, который ориентирован на редактирование ). Это также позволяет загружать большие области, чем основной 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
Harry Wood,
3

Компания WeoGeo теперь позволяет бесплатно загружать данные OpenStreetMap. Вы можете сделать набросок области, для которой вы хотите данные, и файл будет создан.

djq
источник
1

https://extract.bbbike.org/ позволяет загружать необходимые области в различных форматах. это лучше для использования в ГИС.

https://export.hotosm.org/ также предоставляет услуги загрузки в нескольких регионах.

neogeomat
источник