Поиск и загрузка данных OpenStreetMap

Предупреждение

This tutorial is now obsolete. A new and updated version is available at Searching and Downloading OpenStreetMap Data (QGIS3)

Получение данных высокого качества имеет важное значение для любой задачи ГИС. Существует отличный ресурс для получения бесплатных данных с открытой лицензией - OpenStreetMap(OSM) . База данных OSM состоит из улиц, местных данных, а также полигонов зданий. Получение доступа к данным OSM в ГИС-формате интегрировано в QGIS. Это руководство показывает процесс поиска, загрузки и использования данных OSM в QGIS.

Обзор задачи

Мы найдем Лондон в базе данных OSM, просмотрим и выделим часть города, затем извлечем все местоположения пабов в shape-файл.

Методика

  1. Мы будем использовать 2 модуля для выполнения задачи. Убедитесь, что вы установили модули OSM Place Search и OpenLayers. См. инструкции по загрузке модулей: Использование модулей расширения.

../_images/1174.png
  1. Модуль OSM Place Search устанавливается в виде панели QGIS. Вы увидите новую панель под названием OSM place search… в окне QGIS.

../_images/2143.png
  1. Модуль OpenLayers устанавливается в меню Модули. Этот модуль позволяет вам получить доступ к базовым картам от различных поставщиков в QGIS. Загрузим базовую карту OpenStreetMap в QGIS, выбрав Модули ‣ OpenLayers plugin ‣ Add OpenStreetMap layer.

../_images/379.png
  1. You will see a World map loaded in QGIS.

Примечание

Если вы не видите никаких данных, убедитесь, что вы в сети, так как фрагменты базовой карты загружаются из Интернета. Вы также можете использовать инструмент Прокрутка карты для незначительного перемещения по карте, что приведет к обновлению базовой карты.

../_images/447.png
  1. Теперь найдем Лондон. Введите запрос в строку Name contains… на панели OSM Place Search. При наведении курсора на результат, соответствующее место будет выделено на карте. Выберите первый результат - город Лондон в Великобритании - и нажмите кнопку Zoom.

../_images/545.png
  1. Вы увидите, что базовый слой сдвигается и центрируется над Лондоном. Вы можете приблизить его с помощью инструмента Zoom и выбрать конкретную область, которая вас интересует. Для этого урока вы можете приблизить центр города, как показано ниже.

../_images/643.png
  1. Теперь мы можем загрузить отображенные на карте данные. Перейдите к пункту Vector ‣ OpenStreetMap ‣ Download data.

../_images/743.png
  1. В диалоговом окне Download OpenStreetMap data выберите пункт From map canvas в разделе Extent. Выберите путь и назовите выходной файл london.osm.

../_images/842.png
  1. Загруженный файл с расширением .osm - это текстовый файл в формате OSM XML. Сперва нам нужно преобразовать его в подходящий формат, что легко можно сделать в QGIS. Выберите пункт Vector ‣ OpenStreetMap ‣ Import topology from XML.

Примечание

Теперь, поскольку нам больше не нужны функции OSM Place Search, вы можете щелкнуть по кнопке «Закрыть», чтобы убрать эту панель из главного окна. Если она вам вновь понадобится, вы можете активировать ее из View ‣ Panels ‣ OSM place search… (Windows) или Settings ‣ Panels ‣ OSM place search… (Linux).

../_images/943.png
  1. Выберите загруженный файл london.osm в качестве Input XML file. Назовите Output SpatiaLite DB file london.osm.db. Убедитесь, что флажок Create connection (SpatiaLite) after import отмечен.

../_images/1050.png
  1. Теперь последний шаг. Нам нужно создать слои геометрии SpatialLite, которые можно просматривать и анализировать в QGIS. Это делается с помощью Vector ‣ OpenStreetMap ‣ Export topology to SpatialLite.

../_images/1175.png
  1. Файл london.osm.db содержит все типы объектов в базе данных OSM - точки, линии и многоугольники. Слои ГИС обычно содержат только один тип объектов, так что вы должны выбрать один из них. Так как мы заинтересованы в точечных местоположениях пабов, следует выбрать: guilabel:Point (nodes) в качестве Export type. Если бы вам нужна была дорожная сеть, стоило бы выбрать Polylines (open ways). Назовите Output layer name london_points. Данные ГИС имеют 2 составляющие - местоположение и атрибуты. Помимо расположения паба, нас также интересует его имя, так что мы должны также экспортировать эту информацию. Нажмите на пункт Load from DB в разделе Exported tags. При этом будут извлечены все атрибуты из файла london.osm.db. Проверьте тэги name и amenity. См. OSM Tags, чтобы узнать больше о том, что означает каждый атрибут. Убедитесь, что отмечен пункт Load into canvas when finished, и нажмите OK.

../_images/1252.png
  1. Вы увидите, что новый точечный слой под названием london_points загружен в QGIS. Обратите внимание, что в нем содержатся ВСЕ точки базы данных OSM из области просмотра. Поскольку нас интересуют только пабы, мы должны написать запрос, чтобы выбрать только их. Щелкните правой кнопкой мыши на слое london_points слоя и выберите Open Attribute Table.

../_images/1350.png
  1. Вы заметите, что некоторые объекты в колонке amenity имеют значение атрибута pub. Нажмите кнопку Select features using an expression.

../_images/1447.png
  1. Введите выражение «amenity» = „pub“ и нажмите Select.

../_images/1544.png
  1. Вернувшись к окну карты QGIS, вы увидите, что некоторые точки выделены желтым цветом. Это результат нашего запроса. Щелкните правой кнопкой мыши на слое london_points и выберите Save Selection As….

../_images/1641.png
  1. В диалоговом окне Save vector layer as… введите имя выходного файла: london_pubs.shp. Оставьте все другие параметры без изменения и убедитесь, что флажок Add saved file to map установлен. Нажмите OK.

../_images/1738.png
  1. Вы увидите новый слой с названием london_pubs в окне QGIS. Снимите отметку со слоя london_points, так как он нам больше не нужен.

../_images/1836.png
  1. Извлечение shape-файла с пабами завершено. Вы можете использовать инструмент Identify, чтобы нажать на любую точку и посмотреть её атрибуты.

../_images/1928.png

If you want to report any issues with this tutorial, please comment below. (requires GitHub account)