Данные openstreetmap в формате shape файлов

Обновлено: 07.07.2024

В работе программиста иногда возникает потребность в геоданных. Для этого можно использовать OpenStreetMap (OSM). Привлекательность OSM — в возможности совершенно легально использовать качественную картографическую информацию.

Введение

Как самостоятельно получить ответ на вроде бы простые и понятные вопросы (просто так, для интереса):
— сколько на Земле государств, каково их население?
— где расположены на Земле города с населением, например, более миллиона человек?
— сколько на Земле вулканов?

Или (легко получить на основе примеров):
— где расположены больницы, гостиницы в вашем/чужом городе? А между городами?
— где расположены заправки, зоопарки, музеи, рестораны? Да всё что угодно.

Задачу, в общем виде, можно сформулировать примерно так — найти нужные объекты, определить их точное расположение (широту, долготу), название и другую доступную информацию.

Далее эти объекты можно отобразить, например, на карте (OSM, Google, Yandex). В публикации, для визуализации результатов, используется (автоматическое отображение на GitHub данных в формате geoJSON).

Базовые понятия и терминология

Точка (node)

Базовым элементом структуры данных OSM является точка (node) с географическими координатами — широтой (latitude) и долготой (longitude). Высота точки над уровнем моря, в настоящее время, не указывается.

Точка может быть самостоятельным объектом (светофор, киоск, родник) и, без ограничений, входить в состав других объектов (линий и отношений). Точками могут помечаться и большие объекты — страны, города и даже континенты с набором соответствующих тегов.

Атрибуты node:
— id — уникальный идентификатор в базе OSM (используется для way и relation);
— lat — широта, lon — долгота;
— uid и user — идентификатор и имя оператора, внёсшего изменения (используется для way и relation);
— version — версия изменения (используется для way и relation);
— timestamp — время изменения (используется для way и relation);
— changeset — номер изменения (что-то типа транзакции, которую можно применить или отменить) (используется для way и relation).

Теги:
— k=«highway» v=«motorway_junction» — указывает на начало съезда с дороги;
— k=«ref» v=«29» — номер съезда;
— k=«name» v=«Bar Hill» — название;
— k=«exit_to» v=«Bar Hill B1050; Longstanton» — куда;
— k=«layer» v=«3» — уровень;
— k=«fixme» v=«What is with all the layer=3s around this junction?» — автор сделал «узелок на память».

Количество точек в OSM, в настоящее время приближается к значению, которое превышает возможности 32-битного хранения. Поэтому OSM перешёл на 64 бита (для контроля количества точек в OSM даже сделан on-line монитор).

Линия (way)

Линия — это последовательности точек. Менять последовательность нельзя. Несколько линий, логически, могут представлять один объект. Например, длинная дорога состоит из нескольких линий. Линии одной дороги связаны в единое целое соблюдением условия — точка окончания одной линии строго соответствует точке начала другой линии или нескольких линий (в случае ветвления дороги или съезда на другую дорогу). Такая целостность по точкам для линий в OSM хорошо соблюдается.

Полигон — это замкнутая линия, у которой совпадают первая и последняя точки. Полигон не является самостоятельным элементом OSM. Для больших полигонов (границы государств, береговые линии), которые состоят из набора незамкнутых линий, определены правила. Например, при определении береговых линий, земля будет слева по ходу движения, вода — справа. Для административных границ явно указывается — кто слева по ходу движения, кто справа.

Атрибут ref — указывает на id точки (для получения значения координат lat, lon). Важно учитывать последовательность элементов nd.

Теги:
— k=«boundary» v=«administrative» — административная граница;
— k=«admin_level» v=«6» — уровень 6;
— k=«left:county» v=«Cambridgeshire» — кто слева;
— k=«right:county» v=«Essex» — кто справа;
— k=«source» v=«OS_OpenData_Boundary-Line» — ссылка на первоисточник информации.

Отношение (relation)

Отношение — это логическое объединение точек, линий и других отношений в единый объект.

member — участники отношения;
type — тип объекта (node, way, relation);
ref — ссылка на id объекта;
role — роль объекта в отношении.

В данном примере описывается мультиполигон (multipolygon) — парк с внутренними областями (это могут быть, например, пруды, поляны или наоборот места с растительностью).

Примечание: далеко не все мультиполигоны так описаны.

Несмотря, на вроде-бы высокие функциональные возможности, отношения в OSM используются мало. Хотя есть попытки применять отношения к разным объектам. Например, такой сугубо точечный объект как автобусная остановка, по данным внутренней статистики OSM (статистика ведётся для большинства объектов) представлен: 1572243 точками, 2479 линиями и 1140 отношениями.

Объекты и теги (tag)

Объект — это элемент (точка, линия, отношение) с набором тегов (атрибутов). Тег (tag) определён как k=«ключ» v=«значение». Если элемент не имеет тегов, то он не является объектом, а входит в состав других объектов (с тегами тоже может входить).

Обязательных тегов у объекта нет. Нет обязательных требований по количеству, содержанию и порядку следования тегов. Тот кто вносит данные в OSM, сам определяет состав и содержание тегов (Перечень рекомендованных к использованию общепринятых тегов).

В разных странах, регионах или областях одинаковые объекты могут значительно различаться по составу и содержанию тегов. Например, город (city) может быть обозначен точкой или линией (полигоном). В OSM-статистике видны явные региональные предпочтения.

Города, отмеченные точками

Города, отмеченные точками:

Города, отмеченные линиями

Города, отмеченные линиями:

Поэтому, прежде чем использовать новый объект, желательно его исследовать на предмет того, какие теги, фактически, в нём используются.

Координаты и расстояния

Точные географические измерения довольно сложны. Надо учитывать: то что Земля не является идеальным шаром, высоту над уровнем моря, рельеф, разные модели проекций для отображения шарообразной Земли на плоскость.

В интернет картах используется проекция EPSG:4326 – WGS-84, которая базируется на широте и долготе спутниковой GPS навигации. Градусы указываются в десятичном виде: широта (lat=52.2600355), долгота (lon=0.0172928).

Например, есть две точки (вулканы на острове Тристана-да-Кунья):
1. Вулкан «Green Hill» (id=2079122352, lat=-37.1324274, lon=-12.3096104);
2. Вулкан «Red Hill» (id=2079124574, lat=-37.1200039, lon=-12.2383527).

Длина одной угловой минуты широты на поверхности Земли равна (примерно) 1852 метра — (одна морская миля). «Примерно», потому что 1852 метра это среднее значение: 1862 м. на полюсе и 1843 м. на экваторе.

Длина одного градуса широты: 1852 * 60 = 111120 м. (Длина одного градуса долготы: 1852 * 60 * COS(угла широты)).

Таким образом координаты точки в OSM (0.0000001) указаны с точностью

Расстояние между двумя близлежащими точками (без учёта шарообразности Земли) можно вычислять по теореме Пифагора.

Расстояние между вулканами «Green Hill» и «Red Hill»:
²√((37.1324274 — 37.1200039)² + (12.3096104 — 12.2383527)²) = ²√0.00523200316154 ≈ 0.072332587 (или 0.072332587 * 111120 ≈ 8037.6 метров)

Перевести значения координат из десятичного вида в угловой и обратно

В угловой вид:
37.1324274 = 37°
Десятичный остаток в минуты: 0.1324274° * 60 = 7.945644'
Десятичный остаток в секунды: 0.945644' * 60 = 56.73864" ≈ 57"
Итого: 37.1324274° ≈ 37°07'57"

В десятичный вид:
37°07'57" = 37° + 7/60 + 57/3600 ≈ 37 + 0.11666667 + 0.01583333 ≈ 37.1325°

С учётом всех округлений, погрешность составила:
37.1325° — 37.1324274° = 0.0000726° (или 0.0000726 * 111120 ≈ 8 метров)

Откуда загрузить OSM-данные

Данные OSM хранятся в базе данных (БД). На регулярной основе происходит подготовка снимка БД в XML-формате в файл planet.osm. Заархивированный bzip2 файл занимает 45Gb, в распакованном виде — более 600Gb. Кроме этого есть зеркала planet.osm и ссылки на интернет-ресурсы, откуда можно скачать OSM-данные порезанные по регионам.

Для примеров публикации данные взяты с сервера geofabrik. Данные удобно порезаны по регионам и выложены, для выгрузки, в разных форматах: Shape-файлы (shp.zip), PBF-файлы (osm.pbf), XML-файлы (osm.bz2). В примерах публикации используются XML-файлы.

При чтении XML надо учитывать:

Целостность означает:
— Все объекты представлены в XML-файле один раз.
— Все ссылки на id объектов будут присутствовать в XML-файле (например, при описании линии не будет ссылок на несуществующие точки).
— Если объект частично выходит за границы описываемой области, он всё-равно будет описан полностью. Поэтому в двух XML-файлах, описывающих граничные области, возникают дубликаты объектов, которые переходят из одной области в другую. Например, если дублируется relation, то дублируются и way, и node и relation, которые в него входят.
Отличия в организации XML-данных, взятых из разных источников:

Пример следования XML-атрибутов geofabrik:

Пример следования XML-атрибутов gis-lab:

При описании линии, порядок следования точек менять нельзя:

Пример замкнутой линии (простое четырёхугольное строение):

Пояснения к примерам

В публикации рассматривается два примера получения данных:
1. node-объекты (страны, города с миллионным населением, вулканы);
2. way-объекты (пустыни).

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

А почему бы просто не разработать утилиту, в которой предусмотреть все возможные механизмы фильтрации и отбора OSM-данных? Идея такая была (и даже попытка её реализовать). Но ничего не вышло. Действительно, работа с OSM-XML проста. Но логика условий отбора и взаимодействия тегов объектов может быть совершенно непредсказуемой. Поэтому проще иметь, своего рода, шаблон, который легко может быть доработан для получения нужных данных. Примеры и являются такими шаблонами.
При разработке примеров были учтены следующие требования: 1. OSM-данные должны браться прямо из архива;
2. Данные результатов должны быть представлены в форматах CSV и geoJSON;
3. Очень хорошо, если будет обеспечена работа на любом (от минимального до полного) объёме OSM-данных;
4. Очень хорошо, если будет обеспечена очистка данных от дубликатов;
5. Очень хорошо, если будет обеспечена работоспособность на разных ОС;
6. Примеры должны быть полностью функционально-завершёнными и работоспособными.
Обработка OSM-файлов

OSM-XML берётся прямо из заархивированных bzip2 файлов (*.osm.bz2). Для работы с архивом используется библиотека SharpZipLib. При обработке файлов большого размера, проблем не было обнаружено.
Последовательно обрабатываются все *.osm.bz2 файлы во входной директории:

Для того, чтобы найти нужный объект, надо проанализировать все теги (Key:Value пары). Например, так определены условия отбора way-объектов (пустыни):

Для поиска другого объекта надо просто указать другую Key:Value пару значений или несколько пар, если одновременно надо найти несколько объектов разных типов.

Отобранные точечные объекты сохраняются в строковые буфера:

При обработке node-объектов, отобранные данные, подготовленные в строковом виде, записываются в строковый буфер. После обработки очередного OSM-файла, буфер записывается в файлы результатов и обнуляется. Периодическая запись в файлы результатов нужна, для того, чтобы не перегружать систему (ошибки типа — out of memory).

В примере обработки node-объектов все way- и relation-объекты учитываются для статистики (которую можно посмотреть в журнале).

Для сохранения линий используются структуры (в виде списков классов):

Подготовка way-объектов проходит в два этапа (фактически, два полных XML-парсинга одного и того-же файла). Сперва определяются все way-объекты. Затем, при повторном парсинге, определяются широта (lat) и долгота (lon) всех точек (node), входящих в way-объекты. Дело в том, что описание точек (node) идёт перед описанием линий (way).

Фактически, когда надо выбрать много объектов (например, береговые линии, дороги), могут возникать ошибки типа «Out of memory». Для устранения таких ошибок достаточно периодически записывать полученные данные в файлы результатов (например, после обработки очередного файла).

CSV и geoJSON

Формат CSV компактен и удобен для записи большого количества данных, которые потом можно легко импортировать, например, в БД.

Формат geoJSON, напротив, избыточен и «многословен» по структуре, но удобен тем, что данные сразу готовы для показа на карте. В примерах, для визуализации, используется возможность GitHub по отображению геоданных (файлы с расширением geojson).

Переносы строк, при подготовке geojson, используются для удобства просмотра. Иногда в OSM-XML встречаются комбинации символов, которые могут сделать geoJSON невалидным. Это происходит, когда XML-данные корректны, а, после парсинга, JSON воспринимает их как ошибку (причины ошибок приходится искать в довольно больших файлах). Например, надо исправлять двойные кавычки ["], если они встречаются в тегах. В примере двойные кавычки исправляются на одинарные [']. Или широта/долгота могут указываться как, например, «32.» (исправляется на «32.0»).

Для того, чтобы линии не терялись на карте, они помечаются точками, которые хорошо видны (в примере каждая линия помечается точечным объектом, теги которого взяты у линии — функция OSM_WriteResultToFilesGeojson).

Пояснения по работе с XML
При обращении к атрибутам указываются имена, а не индексы:

При чтении XML-элементов и XML-атрибутов желательно указывать имя, а не индекс. Это конечно немного замедляет работу, зато гарантирует от неприятных сюрпризов, например, когда OSM-данные взяты из разных источников с разным порядком атрибутов.

При чтении тегов объекта, XML-блок перечитывается два раза. Первый раз, чтобы определить тип объекта. Второй раз, если найден искомый объект, для того чтобы сохранить теги.

Полный состав тегов нужен, например, если надо проанализировать состав всех тегов по новому объекту. У некоторых объектов (большие города, страны) тегов может быть очень много. Полный состав тегов сохраняется только в CSV-файле.

Быстродействие и дубликаты


Факторы, которые оказывают влияние на быстродействие:
1. Скорость чтения OSM-файла (разархивирование и парсинг XML-элементов):

Для node-объектов OSM-файл должен быть прочитан 1 раз, а для way-объектов — 2 раза.

Необходимость двойного чтения вызвана тем, что в XML-файле сперва идут node-, и только за ними way-объекты. В данном случае двойное чтение просто упрощает алгоритм, позволяя избежать применения промежуточных структур для хранения широты и долготы точек.

2. Удаление дубликатов и установка широты и долготы для точек, входящих в way:

Чтобы не создавать дубликаты объектов и уменьшить время определения широты и долготы точек, входящих в way, используется единый механизм, основанный на применении индексных массивов. Такой подход позволяет значительно увеличить скорость обработки за счёт оптимизации поисковых операций.

В примере с пустынями (для Африки) разница во времени обработки — без индексного массива (useIndexedCheck = false) ≈ 3.5 часа, с индексным массивом (useIndexedCheck = true) ≈ 1 час. Но, если, например, надо выбрать все дороги или береговые линии на полных данных OSM, то без индексации время обработки может растянуться на дни и даже недели (чем больше количество выбранных объектов — тем больше расход времени), а с индексацией — всё время займёт немногим более суток.

Как это работает?

Если, при каждом новом парсинге node или way, знать — был ли объект с таким id уже обработан раньше?, то становится просто выявлять дубликаты.

Если быстро (без поиска) определить, что считанная точка входит в линию, то это даёт значительный выигрыш по скорости. Так как общее количество точек может быть весьма значительным (более трёх миллиардов на полных данных), то и затраты времени на поисковые операции для каждой точки (по внутренним массивам nodeAttrList, wayAttrList, wayToNodeList), с накоплением данных, превращаются в значительные. То есть — применение индексного массива помогает избавиться от «холостых» поисковых операций.

Как это организовано в коде?

Для node- и way-объектов создаются массивы размерностью не менее максимального значения id для данного объекта (для определения максимального значения id используются значения статистики). В массивах для каждого node- или way-объекта выделяется ячейка размером byte, где индекс ячейки соответствует id объекта.

При проверке нового node или way (при парсинге XML) происходит увеличение значения в индексированной ячейке на единицу.

Если значение в индексированной ячейке массива больше нуля, то объект с таким id уже был считан, а само значение будет указывать на количество повторений.

Работоспособность на разных ОС

Здесь главная заслуга разработчиков Mono (за что им уважение и благодарность).

Здесь можно скачать данные OpenStreetMap на регионы РФ.

Содержание

В рамках данного проекта, из данных OpenStreetMap и других открытых источников создаются обновляемые наборы слоев по любой точке мира, включая страны бывшего СССР и все регионы РФ. Данные наборы слоев доступны в форматах ESRI Shapefile, Mapinfo TAB, GeoJSON, что позволяет использовать их практически в любой ГИС.

Создано в Веб ГИС для вашей организации по доступной цене

Если вам нужны данные в формате XML или PBF, то их можно найти на другой странице.

После 12 сентября 2012 года, данные публикуются под лицензией ODBL. Подробнее о ваших правах и обязанностях можно почитать в Legal FAQ.

Система координат данных: WGS84
Проекция: широта/долгота

Эти данные обладают рядом особенностей и преимуществ относительно исходных данных в формате OSM XML:

  • Данные представлены в распространенных ГИС форматах
  • Добавлены готовые проекты для ГИС, благодаря которым данные можно немедленно начинать использовать в ГИС
  • Данные разбиты по слоям, у каждого слоя своя четкая структура атрибутов (посмотреть)
  • Объекты слоёв административно-территориального деления и населенных пунктов имеют коды ОКТМО (источник - Росстат)
  • Добавлены стили, условные обозначения

Дополнительные слои, отсутствующие в таком виде в исходных данных:

  • Административно-территориальное деление в форме обрезанной по границе суши (исходный вариант так же сохранён)
  • Береговые линии, границы суши и водной поверхности
  • разовую платную выгрузку, стоимость от 150р.
  • регулярную выгрузку с периодичностью раз в день, каждую неделю или месяц (до полугода).
  • выгрузку по произвольному контуру, стоимость от 300р.

Актуальность исходной базы данных - текущий день.

Оплата осуществляется банковской картой или Яндекс.Деньги.

Выгрузка данных выполняется сразу после заказа. Готовность данных - в среднем 30 минут.

  • ESRI Shape (пример)
    • Кодировка атрибутивной информации - UTF-8
    • В комплект включен проект для QGIS (файл *.qgs) или проект для ArcGIS (файл *.mxd)
    • Кодировка атрибутивной информации - UTF-8
    • В комплект включен проект для QGIS (файл *.qgs)
    • Кодировка атрибутивной информации - UTF-8
    • В комплект включен проект для ArcGIS (файл *.mxd)
    • Кодировка атрибутивной информации - Windows 1251 (CP1251)
    • В комплект включены проект для Mapinfо (файл *.wor)
    • Кодировка атрибутивной информации - UTF-8
    • Максимальный размер листа - 3 на 3 метра.
    • Для большей детализации рекомендуется заказывать не целый регион, а конкретную область с помощью инструмента указания области.

    Возможна выгрузка и в другие форматы по запросу.

    В архивы с данными в формате ESRI Shape и GeoJSON включаются несколько вариантов проектов для QGIS.

    Этот вариант проектов был разработан old_Bibigon в рамках отдельного проекта.

    Вариант оформления предоставленный пользователем sanyasi и дополненный пользователем gisuser на форуме. Аналогично предыдущему варианту оформления - тоже вариации на тему слоя Mapnik в OpenStreetMap, но с пониженной контрастностью, что может быть удобно в случае использования в качестве базовой карты.

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

    Обзор задачи¶

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

    Методика¶

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

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

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

    You will see a World map loaded in QGIS.

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

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

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

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

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

    Загруженный файл с расширением .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).

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

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

    Файл 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 .

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

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

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

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

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

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

    © Copyright 2019, Ujaval Gandhi.
    Обновлено: окт. 30, 2021.
    Created using Sphinx 4.0.1.

    RU:ВикиПроект Россия/Карты России — карты России в некоторых популярных форматах.

    Закладка 'Экспорт'


    Вы можете воспользоваться закладкой 'Экспорт' на основной странице, чтобы перенести часть карты или данных карты в другое место. Закладка экспорт позволяет выделить область карты на экране для переноса или, если вы не выделите ничего — перенесет всю видимую часть карты (если только область не превысит допустимый размер).

    При этом возможны следующие параметры:

    Данные в формате .osm (OpenStreetMap XML)

    Все текущие данные OpenStreetMap (Точки, Линии, Отношения и Метки) сохраняются в формате XML. OpenStreetMap API Сохраняет эти данные в пределах прямоугольника, указанного вами в вашем браузере. Это называется: запросом карты. Имеется некоторое ограничение по размеру и сложности запрашиваемых данных. Данные XML могут быть сохранены в файл .osm и открыты с помощью инструментов, подобных JOSM. Чтобы узать больше о формате XML, смотри Data Primitives.

    Изображение (рендерер Mapnik)

    Позволяет экспортировать PNG, JPEG, SVG, PDF и PostScript карты в стиле OpenStreetMap Mapnik (слой «по умолчанию» в карте homepage). Для скачивания необходимо нажать «Вставить на сайт» на панели слева.

    Изображение (рендерер Osmarender)

    Позволяет экспортировать изображение карты в стиле tiles@home (Osmarender) При этом используется сервис MapOf

    Встраиваемый HTML

    Создает код HTML для встраивания в сайт фрагмента карты, который будет всегда показывать самые свежие данные.

    Если вы хотите встроить статическое изображение карты, — сохраните скриншот или воспользуйтесь сервисом MapOf.

    Другие инструменты и форматы экспорта

    Если вам нужен другой формат — смотрите ниже. Для этого обычно сначала вам надо экспортировать данные в формат OpenStreetMap XML (.osm), для этого можно воспользоваться закладкой 'Экспорт'-(если вам нужна небольшая область) или Planet.osm-(если вам нужна большая область), а затем, воспользоваться программой-транслятором. Ниже указаны ссылки на такие трансляторы.

    JavaScript API

    Если вы хотите использовать Google Maps-подобные API, чтобы отображать OpenStreetMap на вашем вебсайте, вы можете воспользоваться "Export Tab" и затем выбрать формат как "Embeddable HTML". Вам останется только скопировать кода ваш html. Смотрите пример.

    Мы также предлагаем вам использовать OpenLayers или Mapstraction. Смотрите OpenLayers Simple Example, Openlayers POI layer example, Openlayers_Track_example, а также сайт OpenLayers, чтобы познакомиться с примерами, как это можно делать.

    Гигантские скачивания

    Для скачивания больших объёмов данных с сервера OpenStreetMap, используйте Planet.osm. Если вы хотите создавать свои собственные карты на этой основе, ознакомьтесь с рекомендациями на эту тему здесь.

    И имейте в виду, что данные из OpenStreetMap могут быть экспортированы (в любой формат) в соответствии с Лицензией на OpenStreetMap.

    Я не хочу загружать всю карту местности. Я просто хочу, чтобы реки и другие водоемы присутствовали в области в шейп-файлах, чтобы я мог использовать их в QGIS. Я попробовал geofabrik, но он дает всю карту, а также всю страну, в то время как мне нужны данные города. Прямо сейчас я пробую JOSM. обновит вас, когда это будет работать.

    К сожалению, Природная земля не содержит данных Индии.

    Вы также можете

    1) Поиск функции, которую вы ищете. Я выбрал «Южную платтную реку», которая протекает через Денвер. Это дает поля и теги, которые используются OSM для хранения данных:

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

    2) Определите теги и значения функций, которые вы ищете

    1. Масштабирование до карты
    2. Нажмите на иконку слоев справа (три листа бумаги)
    3. Нажмите на последний пункт меню ( Map data или что-то похожее на вашем языке)
    4. Объекты на карте становятся синими (убедитесь, что вы достаточно сильно увеличены, чтобы увидеть
    5. Нажмите на функцию, которую вы ищете
    6. Теги и значения отображаются в левой части экрана, и вы можете перейти ниже .

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

    Затем перейдите на страницу Overpass Turbo, затем нажмите Wizard

    Используя информацию, значение имени - South Platte River, а значение водного пути - river, поэтому вы можете построить запрос следующим образом:

    Затем нажмите «построить и запустить запрос»

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

    Запрос будет выполнен, и результат отобразится на карте:

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

    Далее нажмите «Экспорт»:

    Мне нравится опция geoJSON

    Откройте файл в QGIS, и все!

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

    Вы можете сделать «сохранить как», чтобы сохранить его как новый тип векторного слоя .

    В вашем случае вы также можете использовать waterway=river запрос, чтобы получить все реки в нужной вам области, и вы можете нарисовать окно ручного выбора, чтобы сузить географию.

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

    @underdark показал мне это.

    Спасибо за ваши усилия, но я все еще не могу следовать за вами. Я хочу водоемы этой области. Что я должен написать на веб-странице турбо-путепровода? Я только что обновил ответ выше: в API overpass используйте небольшой инструмент поиска, чтобы найти Хальдвани, Индия. Затем используйте «ручной выбор bbox», чтобы нарисовать вокруг нужной области, затем с помощью мастера запустите запрос waterway = river . вы можете настроить его, чтобы найти другие функции, используя страницу OSM, о которой я упоминал выше, а затем построить их в запрос на путепровода. большое Вам спасибо. Но у меня все еще есть 1 проблема. он выбирает только реки. Я хочу озер в них также. Ладно. Я попробую плагин OSM тогда. Спасибо за ваше время. Это было очень полезно ..

    Новый плагин QuickOSM для QGIS предоставляет приятный графический интерфейс для использования Overpass API. Вы можете указать нужные пары ключ-значение, а также предлагает удобные способы фильтрации по местоположению: либо ограничивающий прямоугольник, либо даже просто указав имя региона, например, «Австрия», для объектов в пределах границ Австрии.

    Реки можно найти по данным OSM по тегу «waterway = river», и GDAL сохраняет их в слое «линии». Озера, которые вы найдете по "естественной = воде", переходят в слой "мультиполигоны". Если вашей целью является создание шейп-файлов, вы должны сохранять реки и озера в разных файлах, поскольку линии и полигоны не могут быть сохранены в одном шейп-файле.

    В примерах ниже используется файл india-latest.osm.pbf из geofabrik. Основные команды для использования:

    Поместите свой BBOX в параметр -spat в EPSG: 4326 единиц.

    Ogr2ogr является гибким и имеет множество опций. Внимательно прочитайте страницу руководства.

    Читайте также: