Створення карт для MAPS.ME

Рації УКВ та СВ, GPS, навігатори, картографія, інвертори
Відповісти
Аватар користувача
Volodymyr
Засновник Клубу «Львів 4×4»
Засновник Клубу «Львів 4×4»
Повідомлень: 6941
З нами з: 28 серпня 2002, 16:56
Ім'я: Володимир
Авто: Toyota Land Cruiser 60 (HJ60LG-KW•1982), 33x12.5xR15
Звідки: Ukraine, Lviv
Контактна інформація:

Створення карт для MAPS.ME

Повідомлення Volodymyr »

Створення карт для MAPS.ME
MAPS.ME.jpg
MAPS.ME.jpg (68.15 Кіб) Переглянуто 10170 разів
Всі дії здійснюються від звичайного користувача під ОС Linux / Unix.

Спочатку треба завантажити і зібрати необхідний інструментарій. Для цього повинні бути встановлені:
  • git
  • gcc-c++ >= 7.0
  • cmake3 >= 3.2
  • python3
  • pip (pip3)
  • qt5-qtbase-devel
  • sqlite-devel
Також потрібно ~ 5ГБ вільного місця на жорсткому диску. І хоча б 4 ГБ оперативної пам'яті.

Пункти 1.x. виконуються один раз на новій системі або при бажанні оновити інструментарій.

1.1. Створюємо каталог, де буде все що потрібно, щоб не забивати домашню директорію

Код: Виділити все

mkdir mapsme
cd mapsme
1.2. Клонуємо репозиторій. Він займе ~ 4 ГБ місця.

Код: Виділити все

git clone --recurse-submodules -j8 https://github.com/mapsme/omim.git
У старих версіях git немає параметрів -j і --shallow-submodules, так що їх можна прибрати, якщо не клонується.

1.3. Версія складального інструментарію повинна строго збігатися з версією програми, під яку збираємо карти. Наприклад, якщо програма версії 9.5.2, то треба перейти в гілку release-95

Код: Виділити все

cd omim
git checkout release-95
1.4. Збираємо необхідні бінарники. Залежно від потужності CPU процес може затягнутися.

Код: Виділити все

echo | ./configure.sh
tools/unix/build_omim.sh -sr generator_tool
1.5. Довстановлюємо необхідні модулі python і копіюємо шаблон налаштувань збірки карт.

Код: Виділити все

cd tools/python/maps_generator
pip3 install --user -r requirements.txt
cp var/etc/map_generator.ini.default var/etc/map_generator.ini
1.6. Оновимо шляхи, щоб усе лежало в одному каталозі mapsme

Код: Виділити все

sed -i 's|~/omim-build-release|~/mapsme/omim-build-release|' var/etc/map_generator.ini
sed -i 's|OMIM_PATH: ~/omim|OMIM_PATH: ~/mapsme/omim|' var/etc/map_generator.ini
sed -i 's|DEBUG: 1|DEBUG: 0|' var/etc/map_generator.ini
sed -i 's|~/osmtools|~/mapsme/osmtools|' var/etc/map_generator.ini
Каталог в якому буде відбуватися збірка карт і лежати підсумкові файли.

Код: Виділити все

sed -i 's|~/maps_build|~/mapsme/maps_build|' var/etc/map_generator.ini
Якщо хочете прискорити збірання або не бажаєте вбивати ваш SSD, рекомендую створити ramdisk і вказати його для maps_build.
Наприклад: /mnt/ramdisk/maps_build замість ~/mapsme/maps_build
Буде потрібно додатково 4-12ГБ в ОЗУ.

На цьому первинна настройка завершена. На другому етапі збираємо самі карти. Не забувайте, що при оновленні основної програми MapsMe треба перейти на відповідне гілку і перезібрати інструментарій (пп. 1.3.-1.4.).

2. Переходимо в потрібний каталог, якщо ми ще не там

Код: Виділити все

cd ~/mapsme/omim/tools/python/maps_generator
2.1. Налаштовуємо шаблон на потрібний регіон. Для простоти візьмемо карту України з Кримом. Буде потрібно в файлі var/etc /map_generator.ini замінити рядки:

Код: Виділити все

# PLANET_URL:
# PLANET_MD5_URL:
на

Код: Виділити все

PLANET_URL: https://download.geofabrik.de/europe/ukraine-latest.osm.pbf
PLANET_MD5_URL: https://download.geofabrik.de/europe/ukraine-latest.osm.pbf.md5
Це можна зробити в вашому улюбленому текстовому редакторі, але я приведу команди, використовувані в консолі або скрипті.

Код: Виділити все

sed -i 's|.*PLANET_URL.*|PLANET_URL: https://download.geofabrik.de/europe/ukraine-latest.osm.pbf|' var/etc/map_generator.ini
sed -i 's|.*PLANET_MD5_URL.*|PLANET_MD5_URL: https://download.geofabrik.de/europe/ukraine-latest.osm.pbf.md5|' var/etc/map_generator.ini
Ukraine Map.jpg
Ukraine Map.jpg (90.67 Кіб) Переглянуто 10171 раз
https://download.geofabrik.de/europe/ukraine.html

2.2. Тепер генеруємо файл карти. Збірка одного регіону на Intel Core i7-4770 3900МГц займає близько години. І завантаження pbf файлу теж займе час і місце, він ~ 550МБ.

Назви регіонів можна подивитися в ~/mapsme/omim/data/borders. Також їх можна перераховувати через кому в параметрі --countries.

Код: Виділити все

cd ..
python3 -m maps_generator --countries="Ukraine_Kyev" --skip="coastline"
Готовий файл можна знайти в ~/mapsme/maps_build/<дата і час запуску генератора>

Оригінал https://hide.webhop.me/mapsme/0_readme.txt
[О]=TOYOTA=[О] ランドクルーザー
Відповісти