чем открыть osm файл
Как открыть OSM файлы? 4 простых метода решения таких проблем
Когда вы сталкиваетесь с проблемой с неизвестным файлом OSM и не знаете, как открыть такой файл, первый шаг, который вы должны сделать, это определить причину данной проблемы. Мы покажем вам, как решить наиболее распространенные проблемы с файлами OSM и как их решить, в 4 простых шага.
OSM расширение файла
Как открыть файл OSM?
В некоторых случаях проблемы могут возникнуть при попытке открыть файлы OSM. Приведенные ниже шаги могут быть полезны для решения таких проблем.
Шаг 1 – Убедитесь, что файл правильно связан с выбранным программным обеспечением
Первое, что пользователь должен сделать, это связать приложение с файлами OSM. Может случиться так, что даже если в системе установлено приложение, поддерживающее файлы OSM, оно не будет правильно связано с этим форматом файла. Это можно легко исправить, связав программу с файлами OSM. Чтобы связать такие файлы с данным приложением, пользователь должен открыть меню файлов (щелкнув правой кнопкой мыши по файлу) и выбрав «Открыть с помощью». Список предлагаемых приложений будет отображаться в верхней части меню. Затем выберите приложение и подтвердите свой выбор, установив флажок «Всегда использовать выбранное приложение для открытия файлов такого типа». Подтвердите свой выбор, нажав ОК.
Чтобы открыть OSM файл, сфокусируйтесь на шагах 1 и 2
В большинстве случаев для открытия файлов с расширением OSM должно быть достаточно следующих инструкций на шаге 1 и 2. Прежде чем предпринимать следующие шаги, протестируйте все программы, перечисленные ниже.
Шаг 2 – Установите программу, которая поддерживает OSM файлы
Если случится так, что раздел с предлагаемыми программами будет пустым, наиболее вероятно, что в системе не будет установлена программа, поддерживающая файлы OSM. Выберите программу из следующего списка и установите ее:
RU:Использование данных OSM
Эта страница в чем разница» rel=dofollow»>страница находится в процессе перевода или помечена для этой цели, поэтому может содержать пропуски, ошибки и непереведённые фрагменты.
Исходная статья: Using OpenStreetMap. Вы можете закончить перевод.
Если вы знаете английский, то можете помочь нам, переведя часть оригинальной статьи. Общие сведения о переводе статей на русский язык можно найти здесь.
На этой странице рассказывается о том, как вы можете извлечь пользу для себя из геопространственных данных OSM, которые у нас уже накоплены.
Если вы используете данные OSM каким-либо другим способом, не описанным здесь, пожалуйста, опишите эти способы на этой страничке, поделитесь своим опытом.
Сведения о юридических ограничениях на использование данных ОСМ можно найти здесь: RU:OpenStreetMap License и здесь: Legal FAQ.
Содержание
Просмотр онлайн-карт
Тематические онлайн-карты
Существует широкое многообразие специализированных онлайн карт, которые используют данные OpenStreetMap. Некоторые примеры:
Карта для инвалидных колясок Wheelmap.org
Карта активного отдыха и досуга www.komoot.de
Allround map with thematic Overlays OpenStreetBrowser
Карта общественного транспорта ÖPNVkarte.de
Карта для верховой езды и пеших прогулок wanderreitkarte.de
Походная карта с символами waymarkedtrails.org
Пожарная карта (Пожарные части, гидранты) OpenFireMap.org
Карта катания на горных велосипедах и беговых лыжах, включая профили маршрутов и высот XCTrails.org
Карта железных дорог OpenRailwayMap
Другие карты могут быть перечислены в RU:List of OSM-based services, или в категориях Slippy Map, Web Software.
Экспорт изображений из OpenStreetMap
Бумажные карты OpenStreetMap
Визуальные генераторы карт OpenStreetMap в формат PDF, PNG, HTML и др.:
Большие карты (Big Maps)
Карты на вашем сайте
Вы можете использовать карту мира OpenStreetMap на своем веб-сайте как статическое изображение карты или со встроенным HTML. Если вы развернете подвижную карту, все может стать гораздо более интерактивным.
Плагины для сайтов WordPress
Карты на вашем устройстве GPS
Если вы хотите иметь карту на основе OpenStreetMap на вашем устройстве GPS, посетите «Карты GPS из данных OSM» или «Карта OSM на Garmin» для устройства Garmin.
Карты на вашем компьютере или мобильном телефоне
См. Страницы программного обеспечения для мобильных устройств и настольных компьютеров.
Просмотр карт оффлайн
Создайте свою карту
Чтобы создать свою собственную карту, вам нужно гораздо больше технических знаний. В разделе «Разработка программного обеспечения» ниже представлена более подробная информация.
Расширение файла OSM
OpenStreetMap Map Format
Что такое файл OSM?
Архитектура XML
Файлы OSM сохраняют данные в формате XML, и поэтому иногда могут использовать составной суффикс, т. Е. osm.xml.
Схема данных
Файлы OSM хранят данные в структурированном виде. Узлы улиц представлены в виде точек, улицы представлены в виде линий, которые соединяют эти узлы, а отношения хранят свойства улиц, точек и объектов.
Основной файл OSM
Planet.OSM является основным файлом OpenStreetMap, к которому можно получить доступ и изменить его, добавив новые улицы любому пользователю. Пользователи могут добавлять новые улицы или редактировать уже включенные.
Программы, которые поддерживают OSM расширение файла
Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают OSM файлы. Файлы с суффиксом OSM могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.
Программы, обслуживающие файл OSM
Как открыть файл OSM?
Отсутствие возможности открывать файлы с расширением OSM может иметь различное происхождение. Что важно, все распространенные проблемы, связанные с файлами с расширением OSM, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.
Шаг 1. Установите FME Desktop программное обеспечение
Основная и наиболее частая причина, препятствующая открытию пользователями файлов OSM, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы OSM. Этот легкий. Выберите FME Desktop или одну из рекомендованных программ (например, Merkaartor, GeoVisu, GPX Viewer) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт FME Desktop и загрузите установщик.
Шаг 2. Обновите FME Desktop до последней версии
Если у вас уже установлен FME Desktop в ваших системах и файлы OSM по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Это может быть одной из причин, по которой OSM файлы не совместимы с FME Desktop. Последняя версия FME Desktop должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Назначьте FME Desktop для OSM файлов
После установки FME Desktop (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия OSM файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Процедура изменения программы по умолчанию в Windows
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что OSM не неисправен
Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл OSM, о котором идет речь. Проблемы с открытием файла могут возникнуть по разным причинам.
Если случится так, что OSM инфицирован вирусом, это может быть причиной, которая мешает вам получить к нему доступ. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл OSM действительно заражен, следуйте инструкциям ниже.
2. Проверьте, не поврежден ли файл
Если файл OSM был отправлен вам кем-то другим, попросите этого человека отправить вам файл. Возможно, файл был ошибочно скопирован, а данные потеряли целостность, что исключает доступ к файлу. При загрузке файла с расширением OSM из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Убедитесь, что у вас есть соответствующие права доступа
Некоторые файлы требуют повышенных прав доступа для их открытия. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл OpenStreetMap Map Format.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия FME Desktop
Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы OSM. Закройте все работающие программы и попробуйте открыть файл OSM.
5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами OpenStreetMap Map Format. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов OSM.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла OSM мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле OSM.
OpenStreetMap как источник геоданных
В работе программиста иногда возникает потребность в геоданных. Для этого можно использовать OpenStreetMap (OSM). Привлекательность OSM — в возможности совершенно легально использовать качественную картографическую информацию.
Цель публикации — разобрать на рабочих примерах процесс извлечения геоданных OSM. В результате будет получен программный код (на C#), который можно собрать в Visual или Xamarin Studio, выполнить его на разных ОС (под Mono) и получить результат в форматах CSV и geoJSON. Ограничений на размер обрабатываемых 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-атрибутов geofabrik:
Пример следования XML-атрибутов gis-lab:
Пример замкнутой линии (простое четырёхугольное строение):
Пояснения к примерам
В публикации рассматривается два примера получения данных:
1. node-объекты (страны, города с миллионным населением, вулканы);
2. way-объекты (пустыни).
Типы данных выбраны так, чтобы, после обработки полных OSM-данных, был получен понятный и наглядный контент, но, при этом, файлы результатов не были бы слишком большими и их можно было показать на карте.
Обработка OSM-файлов
Для того, чтобы найти нужный объект, надо проанализировать все теги (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-файле.
Быстродействие и дубликаты
Для node-объектов OSM-файл должен быть прочитан 1 раз, а для way-объектов — 2 раза.
Необходимость двойного чтения вызвана тем, что в XML-файле сперва идут node-, и только за ними 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 (за что им уважение и благодарность).