Использование OSM карты при отсутствии доступа к сети Интернет
Posted by iagsav on 9 July 2017 in Russian (Русский). Last updated on 22 July 2017.Цель: использование OSM карты в случае отсутствия доступа к сети Интернет.
Для достижения данной цели можно поднять стек OSM, но это связано с определёнными трудностями.
Известно, что вся база картографических данных OSM хранится в файле планеты: osm.wiki/Planet.osm. Поэтому, используя данный файл и программы для его обработки можно решать большое количество задач, связанных с:
-
просмотром данных отдельных участков карты;
-
рендером отдельных участков карты для печати;
-
изменением данных в файле планеты.
Размер файла планеты в pbf формате на 08.07.2017 составляет около 36 Гб, в формате osm - 58 Гб.
Указанные ниже команды успешно выполняются в ОС Windows и Linux (Ubuntu).
Задача 1. Выборка участка карты по указанным координатам
Для решения этой задачи выполните следующую команду: ### osmconvert planet-latest.osm.pbf -b=41.9376,55.5247,42.1429,55.6311 -o=Murom.osm.pbf
В результате будут вырезаны данные города Муром Владимирской области. Более подробное описание программы OsmConvert находится по этой ссылке: osm.wiki/Osmconvert. В качестве альтернативы можно использовать программу osmosis. Политическая карта мира, с помощью которой можно определиться с координатам выбираемых данных находится по адресу: https://github.com/GEOF-OSGL/OSMPoliticalMap.
Задача 2. Правка карты
Для правки карты можно использовать ПО JOSM (http://josm.ru/). JOSM позволяет загружать и просматривать локальные файлы в формате pbf и osm. После правки файлы также можно сохранить на диск в формате pbf и osm. Если попытаться открыть pbf файл, который был создан в JOSM, будет выдано сообщение об ошибке. Это связано с тем, что элементам карты, которые были созданы, не были присвоены идентификаторы. Эти идентификаторы присваивает сервер OSM при загрузке на него правки. Если использовать для хранения данных формат osm, такой ошибки не возникнет. Для конвертации pbf файла в osm можно использовать следующую команду: