RU:Osm2mp

From OpenStreetMap Wiki
Jump to: navigation, search
Доступные языки — Osm2mp
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

Osm2mp — это скрипт на языке программирования Perl, написаный пользователем Liosha для преобразования данных OSM в польский формат (.mp). Файлы, полученные в результате конвертирования, поддерживают маршрутизацию.

Основные возможности

  • настраиваемый набор типов;
  • генерация роутингового графа;
  • поддержка отношений multipolygon и restriction;
  • обработка данных для совместимости с cgpsmapper (близкие узлы, самопересечения);
  • отчёт об обнаруженных ошибках в исходных данных.

В какие форматы можно преобразовать .mp-файлы

Полученный файл в Польском формате (.mp) можно сконвертировать в разные форматы для навигаторов:

Установка программы в среде Windows

Использование готовой сборки

Самым простым и быстрым вариантом сконвертирировать OSM файл является использование готовой сборки osm2mp:

Следует отметить что при использовании вышеупомянутых сборок надежность и производительность конвертирования не гарантируются.

Работа со сборкой производится в 3 простых шага.

  • Распакуйте содержимое одного из архивов в папку osm2mp, желательно в корневом каталоге
  • Поместите файл для конвертирования в папку osm2mp, переименовав его в RU-KB.osm
  • Запустите файл osm2mpGarmin32.bat и дождитесь окончания конвертирования (может занимать много времени для больших файлов)

После окончания конвертирования в папке появится файл map.mp, который и является файлом сконвертированной карты.

Ручная установка скрипта

Для запуска программы-скрипта osm2mp, вам понадобится установить ActivePerl для Windows. После установки ActivePerl обязательно надо установить некоторые модули. Проделаем это:

  1. Перейти по ссылке в SVN и скачать оттуда следующие файлы:
    garmin.yml, nodes-common.yml, nodes-garmin-custom.yml, ways-areas-common.yml, ways-areas-garmin-custom.yml, ways-lines-common.yml, ways-lines-garmin-custom.yml, ways-roads-common.yml, ways-roads-garmin.yml и сам скрипт osm2mp.pl
    в любое место, в одну папку на диске, (нажимаем правой кнопкой мышки на ссылку и выполняем команду "Сохранить объект как...").
    Примечание: для конвертирования для Навител, файлы navitel.yml, nodes-navitel.yml, ways-areas-navitel.yml, ways-lines-navitel.yml, ways-roads-navitel.yml взять тут. (Поскольку качать браузером по одному файлику из SVN могут только мазохисты, рекомендую использовать одну из программ-качалок для SVN, например, TortoiseSVN)
  1. Открыть файл garmin.yml редактором WordPad и дополнить значение переменной Name в секции [IMG ID] так: Name=[% mapname %] (Converted by Ваше_Имя). Это необходимо для того, чтобы при просмотре инфо конвертированной карты, отображалось имя того, кто выполнил конвертирование. (Ага, щас. Нет этого файла. Скорее всего, это надо делать в output-polish.yml - dimonster)
  2. Скачать и установить ActivePerl — http://www.activestate.com/activeperl/
  3. Выполнить Dos-команду \Perl\bin\ppm.bat. (в версии 5.14 в Пуске после установки появится ярлык "Perl Package Manager")
  4. В окрывшемся, через некоторое время, окне Perl Package Manager (PPM) выбрать в меню View команду All Packages
  5. найти в списке модуль Template-toolkit и выделить его
  6. В меню Action (или в контекстном меню по правому клику) выполнить команду Install Template-toolkit
  7. Таким же образом отметить для установки неустановленные по умолчанию в Вашей версии ActivePerl модули:
    • Config-Std ***,
    • Encode-Locale *,
    • File-Slurp **,
    • Geo-Openstreetmap-Parser **,
    • Getopt-Long *,
    • List-MoreUtils *,
    • Log-Any **,
    • Log-Any-Adapter **,
    • Match-Smart, (если Smart нет, то Match-Any, match-simple, match-simple-XS)
    • Math-Geometry-Planar-GPC-Polygon,
    • Math-Polygon,
    • Math-Polygon-Tree,
    • PerlIO-via-PrepareCP1251,
    • PerlIO-via-Unidecode,
    • Text-Unidecode,
    • Tree-R,
    • YAML,
      * в версии 5.14 уже установлены,
      ** необходимы для работы скрипта getbound.pl,
      *** предположительно, этот модуль тоже нужен)
  8. В меню File выполнить команду Run Marked Actions
  9. Выйти из PPM

Алэ цэ щэ, нажаль, нэ всэ :) В зависимости от версии ActivePerl может меняться содержимое и названия пакетов. Жизнь не стоит на месте. Поэтому на сегодня для версии ActivePerl 5.16.2 build 1602 необходимо скачать ещё несколько пакетов.

  1. Запустить "Командную строку" (Пуск-Выполнить-набрать слово cmd - Нажать ОК).
  2. В командной строке набарть cpan, нажать Ентер.
  3. Находясь в cpan (на экране видно строку cpan> ), набрать install Config::Std и нажать Ентер (не перепутайте прописные и строчные буквы). Если ругается про тесты - запустите notest install Config::Std.
  4. Находясь в cpan (на экране видно строку cpan> ), набрать install Template и нажать Ентер (не перепутайте прописные и строчные буквы). На вопросы установщика жать Ентер.
  5. Выйти из cpan (на экране после cpan> , набрать q и нажать Ентер)
  6. Запустить ppm и установить пакет Text-Unidecode
  7. Если есть проблемы с Class::Std (на свежих версиях отсутствуют), зайти на www.cpan.org, вбить в поиск Class::Std, скачать Class-Std-0.011.tar.gz, распаковать, выдрать файл Std.pm и закинуть его в c:\Perl\lib\Class\ (ибо установить через cpan не получается, а ppm это не находит)
  8. Установить через ppm ещё несколько пакетов (например, для 5.16.3 ActivePerl - YAML, Geo::Openstreetmap::Parser, Tree::R, Math::Polygon, Math::Geometry::Planar::GPC::Polygon, Math::Polygon::Tree, Data::Dump, PerlIO::via::Unidecode PerlIO::via::PrepareCP1251 остальные конкретные названия не помню :-( )

Если вы поставили что-то типа Strawberry Perl [1], то могут помочь волшебные строчки

  cpan -T -i Config::Std 
  cpan -i Template Text::Unidecode List::MoreUtils Encode::Locale Getopt::Long PerlIO::encoding  
  cpan -i YAML  Data::Dump  Geo::Shapefile::Writer Geo::Openstreetmap::Parser Tree::R Math::Polygon
  cpan -i PerlIO::via::Unidecode PerlIO::via::PrepareCP1251 Inline::C Math::Polygon::Tree

для getBounds - ещё

  cpan -i Log::Any Log::Any::Adapter

Внимание: под Windows крайне желательно использовать Perl из-под аккаунта с именем пользователя на латинице. Иначе могут возникать непредсказуемые ошибки, особенно при работе с CPAN.

Установка программы в среде Linux

OpenSuse

Загрузить скрипт и сопутствующие файлы:

 svn co https://github.com/liosha/osm2mp/trunk/ osm2mp


Примечание: для конвертирования для Навител, конфигурационные файлы взять тут.

При необходимости установить perl (в OpenSuse по умолчанию установлен)

Установить дополнительные модули

 su
 zypper in perl-YAML
 perl -MCPAN -e "install List::MoreUtils"
 perl -MCPAN -e "install Text::Unidecode"
 perl -MCPAN -e "install Data::Dump"
 perl -MCPAN -e "install Math::Polygon"
 perl -MCPAN -e "install Inline::MakeMaker"
 perl -MCPAN -e "install Math::Geometry::Planar::GPC::Polygon"
 perl -MCPAN -e "install Math::Polygon::Tree"
 perl -MCPAN -e "install Tree::R"
 perl -MCPAN -e "install Encode::Locale"
 perl -MCPAN -e "install Template::Context"
 perl -MCPAN -e "install Geo::Openstreetmap::Parser"

Gentoo

При необходимости установить perl, svn и yaml для perl

 emerge perl
 emerge subversion
 emerge dev-perl/yaml

Установить дополнительные модули perl

 perl -MCPAN -e "install List::MoreUtils"
 perl -MCPAN -e "install Text::Unidecode"
 perl -MCPAN -e "install Data::Dump"
 perl -MCPAN -e "install Math::Polygon"
 perl -MCPAN -e "install Inline::MakeMaker"
 perl -MCPAN -e "install Math::Geometry::Planar::GPC::Polygon"
 perl -MCPAN -e "install Math::Polygon::Tree"
 perl -MCPAN -e "install Tree::R"
 perl -MCPAN -e "install Encode::Locale"
 perl -MCPAN -e "install Template::Context"

Загрузить скрипт и сопутствующие файлы:

 svn co https://github.com/liosha/osm2mp/trunk osm2mp

Примечание: возможно, если версия YAML, установленная в системе, немного младше указанной в скрипте, придется поправить строчку "use YAML 0.72;" на установленную версию, например "use YAML 0.71;"

Примечание: для конвертирования для Навител, конфигурационные файлы взять тут.

Ubuntu 16.04

Проверено на версии от 2016.07.26

1. Установить из репозитариев библиотеки для perl и сопутствующий софт

 sudo apt-get install build-essential unzip libconfig-std-perl libyaml-perl libencode-locale-perl liblist-moreutils-perl libmatch-simple-perl libmath-polygon-perl liblocal-lib-perl libxml-parser-perl libtext-unidecode-perl libjson-perl libtemplate-perl

2. Запустить и настроить CPAN (без рута, библиотеки установятся в домашнем каталоге)

 cpan
 ...
 Would you like to configure as much as possible automatically? [yes] 
 ...
 What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib]
 ...
 Would you like me to append that to /home/user/.bashrc now? [yes]
 ...
 >exit

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

4. Установить недостающие библиотеки через CPAN

 cpan -i Math::Polygon::Tree
 cpan -i Tree::R
 cpan -i Geo::Openstreetmap::Parser

4а. Необязательные библиотеки

 cpan -i PerlIO::via::PrepareCP1251

5. Загрузить и распаковать osm2mp

 wget https://github.com/liosha/osm2mp/archive/master.zip
 unzip master.zip

6. Проверить

 cd osm2mp-master
 wget http://data.gis-lab.info/osm_dump/dump/latest/RU-IN.osm.bz2
 bunzip2 RU-IN.osm.bz2
 ./osm2mp.pl -o ./result.mp ./RU-IN.osm

Установка в FreeBSD

В FreeBSD ковертер достепен для установки из исходных кодов и из портов.

Для установки их исходных кодов необходимо загрузить конвертер из хранилища https://github.com/liosha/osm2mp , а также установить или обновить perl и используемые конвертером perl-модули до требуемой версии.
Для установки из портов нужно перейти в директорию с портом (ports/converters/osm2mp) и установить порт, например так:
  #cd /usr/ports/converters/osm2mp
  #make
  #make install

Настройка файла poly.cfg

Формат строки, описывающей роутинговую линию

<key> <value> r <lcode>,<prior> <minlvl> <maxlvl> <speed>,<class>,<oneway>,<pay>,<a1>,<a2>,<a3>,<a4>,<a5>,<a6>,<a7>,<a8>

где:

Аргумент Что обозначает Возможные значения
<key> Ключ тега
<value> Значение тега
r Тип, в который будет преобразован объект r — роутинговая полилиния
p — полигон (внимание! это значение не для роутинговой полилинии)
l — линия ??? (внимание! это значение не для роутинговой полилинии)
s — ??? (внимание! это значение не для роутинговой полилинии)
<lcode> Код, которым будет обозначена линия на карте Число в шестнадцатиричном формате.
<prior> Приоритет конвертации Число. Из всех тегов линии для конвертации выбирается тег с наибольшим приоритетом.
<minlvl> Минимальный уровень, на котором виден объект Десятичное число.
<maxlvl> Максимальный уровень, на котором виден объект Десятичное число.
<speed> Класс скорости 1 — до 5 км/ч — пешеходные дорожки в насел. пунктах, загородные тропы
2 — до 20 км/ч — внутридворовые проезды, загородные труднопроходимые дороги
3 — до 40 км/ч — дороги с плохим покрытием в насел. пункте, загородные участки дорог с ограничением скорости
4 — до 60 км/ч — улицы, магистрали, проселочные дороги
5 — до 80 км/ч — автомагистрали в насел. п., загородные дороги с небольшими дефектами
6 — до 90 км/ч — крупные автомагистрали в насел. п., обычные загородные дороги с покрытием
7 — до 110 км/ч — в насел. п. применяется крайне редко, загородные автомагистрали
8 — без ограничений — в насел. п. не применяется, загородные улучшенные автомагистрали
<class> класс дороги 0 — улица малая, аллея, просёлочная дорога, тропа
1 — крупная дорога, круговое движение
2 — центральная улица, прочие загородные дороги
3 — основное шоссе
4 — автомагистраль, съезд с дороги
<oneway> одностороннее движение 1 — да, 0 — нет
<pay> платная дорога 1 — да, 0 — нет
<a1> Не для служб спасения 1 — да, 0 — нет
<a2> Не для служб доставки 1 — да, 0 — нет
<a3> Не для машин и мотоциклов 1 — да, 0 — нет
<a4> Не для автобусов 1 — да, 0 — нет
<a5> Не для такси 1 — да, 0 — нет
<a6> Не для пешеходов 1 — да, 0 — нет
<a7> Не для велосипедистов 1 — да, 0 — нет
<a8> Не для грузовиков 1 — да, 0 — нет

Формат строки, описывающей полигон

<key> <value> p <pcode> <minlvl> <maxlvl> <ncode>,<nminlvl>,<nmaxlvl>
Аргумент Что обозначает Возможные значения
<key> ключ тега
<value> значение тега
p Тип, в который будет преобразован объект r — роутинговая полилиния (внимание! это значение не для полигона)
p — полигон
l — линия ??? (внимание! это значение не для полигона)
s — ??? (внимание! это значение не для полигона)
<pcode> Код, которым будет обозначен полигон на карте число в шестнадцатиричном формате.
<minlvl> Минимальный уровень, на котором виден объект десятичное число
<maxlvl> Максимальный уровень, на котором виден объект десятичное число
<ncode> код точки, которая будет поставлена на карте в центр полигона
(видна на уровнях от <nminlvl> до <nmaxlvl>)
число в шестнадцатиричном формате
<minlvl> Минимальный уровень, на котором видна точка с кодом <ncode> в середине полигона десятичное число.
<maxlvl> Максимальный уровень, на котором видна точка с кодом <ncode> в середине полигона десятичное число.

Пример файла poly.cfg

Вопрос: Разъясните, пожалуйста, что означают цифры, в файле poly.cfg, на примере следующих строчек из этого файла:

junction        roundabout              r       0x0c,3          0       2       3,3,1,0,0,0,0,0,0,0,0,0
natural         water                   p       0x3f            0       3       0x650d,0,2

Ответ:

  1. Если среди всех тегов линии встречается junction=roundabout, то конвертировать ее в роутинговую ("r") полилинию с типом "0x0c" ("Круговое движение") и приоритетом 3 (из всех тегов линии для конвертации выбирается тег с наибольшим приоритетом), видимая на уровнях от 0 до 2 и флагами маршрутизации (в терминах польского формата) 3,3,1,0,0,0,0,0,0,0,0,0
  2. Если у линии есть тег natural=water, конвертировать ее в полигон ("p") типа 0x3f ("Озеро среднее (11-25 км²)"), видимый на уровнях от 0 до 3 и поставить в центр озера точку типа 0x650d "Озеро", видимую на уровнях от 0 до 2.

Для junction=roundabout флаги маршрутизации такие: класс скорости 3 (60 км/ч), класс дороги 3 (Principal HW), односторонняя (1), не платная (0), запретов движения конкретных видов транспорта нет (0,0,0,0,0,0,0,0). Другие флаги маршрутизации можно посмотреть здесь: http://v-dorogu.narod.ru/article/routemap.htm

Настройка файла poi.cfg

Вопрос: Что означает city в строке файла poi.cfg:

place           hamlet                  0x0C00          0       2       city

Ответ: Значит, для точки надо определить и записать регион и страну.

Вопрос: Какие дефолтные значения используются в файле poi.cfg ? Ответ: минимальный уровень приближения: 0, максимальный уровень приближения: 1.

Запуск

osm2mp.pl [ключи] file.osm > file.mp

Ключи программы

Ключ Формат Описание Значение по умолчанию
--mapid --mapid=<id> Уникальный идентификатор карты 88888888
--mapname --mapname=<name> Наименование карты OSM
--cfgpoi --cfgpoi=<file> Имя файла с настройками точек poi.cfg
--cfgpoly --cfgpoly=<file> Имя файла с настройками полилиний poly.cfg
--header --header=<file> Имя файла шаблона заголовка карты. Использовался в версии 0.80 (до revision 182). Не используется с появлением ключа --config header.tpl
--config --config=<file> Имя файла шаблона заголовка и адресной конфигурации карты (пример файла) garmin.yml
--bbox --bbox=<minlon,minlat,maxlon,maxlat> Обрезать карту по прямоугольной границе, описанной координатами углов Отключено
--osmbbox --osmbbox Обрезать карту по прямоугольной границе, параметры которой берутся из тегов <bound> .osm-файла Отключено
--bpoly --bpoly=<poly-file> Обрезать карту по границе произвольной формы, которая описана в .poly-файле (примеры файлов) Отключено
--background --background Создать на карте полигон "0x4b" (область покрытия карты) по границе обрезки. Включено
--codepage --codepage=<num> Кодовая страница .mp файла и карты 1251
--nocodepage --nocodepage Оставить исходную кодовую страницу (utf-8) .mp-файла файла и карты Отключено
--upcase --upcase Преобразовать все значения текстовых строк .mp-файла в верхний регистр Отключено
--translit --translit Транслитерировать все значения текстовых строк .mp-файла Отключено
--ttable --ttable=<file> Имя файла дополнительной таблицы перекодировки (пример файла)
--namelist --namelist <key>=<list> Список тегов в порядке приоритета, значения которых используются для заполнения наименований объектов в .mp-файле label=name loc_name addr:housenumber operator,
house=addr:housenumber addr:housename,
place=place_name name,
region=addr:region is_in:region addr:state is_in:state,
country=addr:country is_in:country_code is_in:country,
destination=destination label name
--nametaglist --nametaglist=<list> Список тегов, значения которых используются для заполнения поля Label в .mp-файле, в порядке приоритета. Устарел, с появлением ключа --namelist. name, ref, int_ref, addr:housenumber, operator
--countrylist --countrylist=<file> Имя файла с таблицей замены кода страны на её название (пример файла) Отключено
--defaultcountry --defaultcountry=<name> Страна по умолчанию для тех объектов, для которых она явно не задана. Необходимо для адресного поиска Earth
--defaultregion --defaultregion=<name> Регион по умолчанию для тех объектов, для которых он явно не задан. Необходимо для адресного поиска OSM
--defaultcity --defaultcity=<name> Город по умолчанию для тех объектов, для которых он явно не задан. Необходимо для адресного поиска Отключено
--addressing --addressing Process addressing polygons... Включено
--navitel --navitel Формировать адресные данные для полигонов Отключено
--oneway --oneway Обрабатывать тег oneway Включено
--routing --routing Создать граф маршрутизации для карты Включено
--mergeroads --mergeroads Соединять одинаковые сегменты дорог, удовлетворяющие значению ключа --mergecos Включено
--mergecos --mergecos=<cosine> Максимально допустимый угол между дорогами (для ключа --mergeroads), задаётся значением косинуса 0.2
--splitroads --splitroads Разделять дороги с большим числом узлов и дороги, имеющие самопересечения Включено
--maxroadnodes --maxroadnodes=<dist> Максимально допустимое число узлов в сегменте дороги (для ключа --splitroads) 60
--fixclosenodes --fixclosenodes Увеличивать расстояние между слишком близкими узлами Включено
--fixclosedist --fixclosedist=<dist> Минимально допустимое расстояние между узлами дороги, в метрах (для ключа --fixclosenodes) 3.0
--detectdupes --detectdupes Проверить и включить в перечень ошибок информацию о наличии дублирующихся сегментов дорог (см. строки "; ERROR:" в .mp файле) Включено
--restrictions --restrictions Конвертировать запреты поворотов Включено
--barriers --barriers Обрабатывать запреты проезда (тег barrier=*) Включено
--disableuturns --disableuturns Запрещать "паразитные" развороты (например, на пересечении автомобильной дороги с пешеходной тропой) Отключено
--destsigns --destsigns Конвертировать дорожные указатели Включено
--interchange3d --interchange3d Конвертировать 3D-уровни для формата Навител Включено
--transport --transport=<Список> Оставить в графе маршрутизации только те дороги, по которым разрешено движение транспортным средствам, перечисленным в <Cписке> emergency,police,delivery,
car,motorcar,bus,
taxi,foot,pedestrian,
bike,bicycle,truck
--shorelines --shorelines Создавать полигоны морей из береговой линии Отключено
--waterback --waterback Создать полигон моря на всю область карты (для карт отдельных островов) Отключено
--marine --marine Включать в карту дополнительные данные о морских объектах (цвет буёв, сектора свечения маяков, и т.д.) Включено
--makepoi --makepoi Создавать точки POI по данным соответствующего полигона, в его условном "центре тяжести" Включено
--poiregion --poiregion Указывать регион и страну для точек населённых пунктов Включено
--poicontacts --poicontacts Указывать контактную информацию для точек POI Включено

Для отключения действия ключа его следует указывать с префиксом "no". Например: --norouting для создания карты без графа маршрутизации.

Другие полезные скрипты

В SVN находятся и другие полезные скрипты:

osmget & osmsort

  • osmget.pl — скачивает квадрат кусками в файл;
  • osmsort.pl — приводит этот файл в порядок.

параметры osmget — координаты углов квадрата через запятую:

osmget  minlon,minlat,maxlon,maxlat  >  draft.osm

можно слить несколько кусков, тогда ставим >> вместо >

osmget  minlon2,minlat2,maxlon2,maxlat2  >>  draft.osm

потом

osmsort draft.osm > final.osm

splitter

  • splitter.pl — разбивает OSM-файл на части примерно одинакового заданного размера.

Запуск:

splitter <file.osm> [ключи] > <file.txt>

-file.osm — карта в формате OSM
-file.txt — имя файла с отчётом
Ключи:

Ключ Формат Описание Значение по умолчанию
--mapid --mapid=<id> Числовое имя файла первой части по порядку. 65430001
--maxnodes --maxnodes=<n> Примерное максимальное кол-во точек в одной части. 1000000
--relations --relations=<число> Число итераций обработки отношений.
0 — не учитывать целостность отношений
1 — сохранять участников отношений
2 — сохранять участников отношений и участников их непосредственных родителей/потомков
3 — ...
1
--init --init=<file.cfg> file.cfg — текстовый файл с заданными квадратами разбивки в формате [id minlon,minlat,maxlon,maxlat] (см. файл отчёта). Отключено
--optimize --optimize=<0 или 1> Оптимизировать охватывающие полигоны частей (bbox) 1

getbound

Живёт в отдельном репозитории. Для не дружащих с Перлом есть сборка win32: getbound.zip

  • getbound.pl — скрипт автоматического создание файла территории, на которую будет производиться конвертирование данных OSM в польский формат скриптом osm2mp.pl (ключ --bpoly=<poly-file>).
  • aliases.yml - файл алиасов в формате YAML ( <алиас>: <номер объекта> )

Команда для запуска:

getbound.pl <relation_id> [ключи]

Где:

<relation_id>   — номер линейного или полигонального объекта в картографической 
                  базе OSM с типом boundary или multipolygon, либо алиас из 
                  файла aliases.yml

Ключи:

-api [osm|op_ru] — api, используемый для загрузки
                     osm   - http://www.openstreetmap.org/api/0.6 (по умолчанию)
                     op_ru - http://overpass.osm.rambler.ru/cgi
-o <file>       — имя файла для записи территории (по умолчанию: STDOUT);
-proxy <host>   — ip-адрес прокси-сервера (если используется);
-onering        — преобразование и запись данных о территории как единый контур;
-offset <N>     — расширение контура за счет смещения линии на N градусов;

Например: Для создания poly-файла, необходимого для конвертирования данных OSM попадающих только на территорию Истринского района Московской области России http://www.openstreetmap.org/browse/relation/184072, требуется запустить скрипт со следующими параметрами:

getbound.pl 184072 -o istra.poly -onering

Граница Псковской области со смещением (используем псевдоним из aliases.yml)

getbound.pl -o pskov.poly -api op_ru -offset 0.1 pskov

Подробнее о файлах *.poly можно прочитать по ссылке http://gis-lab.info/qa/osm-poly.html

Полезные ссылки