Купил себе такой велокомп, карт для России пока нет. Написал в поддержку запрос, чтоб прислали инструкцию как сделать карту самому. Не ответили. Ну ничего, сами разберемся. Итак, мануал по созданию карт для IGPSPORT IGS618 (Guide to map creation for IGPSPORT IGS618).
I. Подготовка
1. Качаем дистриб QGIS:
https://qgis.org/ru/site/ (устанавливаем Стандартная Desktop-установка, галка обязательно у QGIS, можно и на дефолте)
2. Запускаем QGIS: Модули -> Параметры, включаем там экспериментальные и устаревшие модули
2.a Модули -> Все, устанавливаем: GPX Segment Importer (импорт треков как слой), OpenLayers Plugin (отображение карт OSM и GMAP и тд из сети), OSM Tools (роутинг, не обязательно)
2.b Включаем слой с картами OSM: Интернет -> OpenLayers Plugin -> OpenStreetMap -> OpenStreetMap
Можно загрузить файл *.osm.pbf полученный ниже, но его надо сконвертировать в БД (
https://gis.stackexchange.com/questi...f-file-in-qgis), иначе повешает систему
3. Качаем Cruiser (смотреть карты которые получились .map и которые предлагает igpsport)
http://www.talent.gr/public/cruiser/
Вариант 2. Качаем Cartograph 2 Demo (крайне глючная)
https://www.cartograph.eu/downloads/...ph2demowin.exe
4. База данных .osm.pbf (карты OSM) региона или страны, по РФ можно тут загрузить
http://download.geofabrik.de/russia.html
http://be.gis-lab.info/data/osm_dump/dump/latest/ (
http://gis-lab.info/projects/osm_dump/)
5. Качаем Osmosis:
https://wiki.openstreetmap.org/wiki/Osmosis#Downloading и ставим (распаковываем)
https://wiki.openstreetmap.org/wiki/...tall_(Windows)
6. Качаем плагин Mapsforge Map-Writer для Osmosis:
https://github.com/mapsforge/mapsfor...n-installation
https://search.maven.org/search?q=mapsforge-map-writer качаем jar-with-dependencies.jar
Скачанный файл кладем в osmosis-latest\lib\default
7. Увеличиваем размер "кучи" для Java
Файл osmosis-latest\bin\osmosis.bat после слов "REM # JAVACMD_OPTIONS" сначала новой строки добавляем (выставлено 2000 Мб = 2Gb)
set JAVACMD_OPTIONS=-Xmx2000m
II. Создание файла-полигона:
Файл описывает границы создаваемой карты
1. Можно загрузить gpx-трек (модуль GPX Segment Importer), тогда проще границы карты задать
2. Запускаем QGIS: Слой -> Создать слой -> New GeoPackage Layer (вводим имя, тип геометрии: Полигон, система координат: EPSG:4326 - WGS 84)
3. Выбираем слой (в Панели слоев) и в меню выбираем Режим Редактирования
4. Правка -> добавить Полигон
5. Отключаем режим редактирования (повторить п.3)
6. Правка -> Выделить -> Выделить объекты
7. Правка -> Копировать объекты
Цифра 0 значит порядковый номер слоя в QGIS - игнорировать это число
Код:
wkt_geom fid
Polygon ((38.2222309 46.7000847, 38.3222309 46.8000847)) 0
8. Приводим к такому формату (*.poly):
Код:
polygon
1
38.2222309 46.7000847
38.3222309 46.8000847
END
END
9. Сохраняем в *.poly
10. Можно сохранить этот полигон в QGIS в другом формате (например, .geojson). Для этого в выбираем слой (в Панели слоев) и в меню выбираем Export -> Save Features As... вводим имя и желаемый формат.
Далее этот файл можно в QGIS импортировать через создание нового векторного слоя для повторного редактирования.
III. Исходные данные:
Создадим свою карту для Краснодарского края и Ростовской области
1. Качаем карту региона Краснодарской и Ростовской областей: RU-KDA.osm.pbf и RU-ROS.osm.pbf
2. Задаем границу требуемой карты: map.poly
3. Создадим карту на основе полигона в формате .map (имя файла макс 28 символов; русские буквы, пробелы не использовать).
Если границы лежат в нескольких регионах (файлах)
Код:
osmosis --rb regions\RU-KDA.osm.pbf --rb regions\RU-ROS.osm.pbf --merge --bounding-polygon file="regions\1\Map KRD+ROS.poly" --mapfile-writer file=regions\kda.map tag-conf-file=regions\tm.igsport.xml zoom-interval-conf=13,13,14
Если в одном файле
Код:
osmosis --rb regions\RU-KDA.osm.pbf --bounding-polygon file="regions\1\Map KRD+ROS.poly" --mapfile-writer file=regions\kda.map tag-conf-file=regions\tm.igsport.xml zoom-interval-conf=13,13,14
3а. если требуется модифицировать карту или добавить свое. Конвертируем ее: создадим карту на основе полигона в формате OSM XML. Правим локальную копию OSM и создаем на ее основе карту.
Если границы лежат в нескольких регионах (файлах)
Код:
osmosis --rb regions\RU-KDA.osm.pbf --rb regions\RU-ROS.osm.pbf --merge --bounding-polygon file="regions\1\Map KRD+ROS.poly" --write-xml regions\kda.osm
Если в одном файле
Код:
osmosis --rb regions\RU-KDA.osm.pbf --bounding-polygon file="regions\1\Map KRD+ROS.poly" --write-xml regions\kda.osm
3b. Создадим карту в формате .map (имя файла макс 28 символов; русские буквы, пробелы не использовать)
Код:
osmosis --rx regions\kda.osm --mapfile-writer file=regions\Eysk.map --mapfile-writer file=regions\kda.map tag-conf-file=regions\tm.igsport.xml zoom-interval-conf=13,13,14
где tag-conf-file-файл
tm.igsport.xml это урезанный файл настроек (tag-mapping.xml) для mapfile-writer
https://github.com/mapsforge/mapsfor...ag-mapping.xml
я его исправил (подобрал такие значения, чтоб были как карты от igpsport):
tm.igsport.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<tag-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" default-zoom-appear="14"
profile-name="default-profile" xmlns="http://mapsforge.org/tag-mapping"
xsi:schemaLocation="http://mapsforge.org/tag-mapping https://raw.githubusercontent.com/mapsforge/mapsforge/master/resources/tag-mapping.xsd">
<!-- ************* ZOOM *************** -->
<!-- 2km = 13 -->
<!-- 1km = 14 появляются второстепенные дороги (хотя по докам иначе - с 15 уровня должны) -->
<!-- 500m = 15 -->
<!-- 200m = 16 -->
<!-- 100m = 17 -->
<!-- HIGHWAY TAGS -->
<!-- https://wiki.openstreetmap.org/wiki/RU:Key:highway -->
<ways>
<osm-tag key="highway" value="trunk" zoom-appear="13" />
<osm-tag key="highway" value="trunk_link" zoom-appear="13" />
<osm-tag key="highway" value="secondary" zoom-appear="13" />
<osm-tag key="highway" value="secondary_link" zoom-appear="13" />
<osm-tag key="highway" value="primary" zoom-appear="13" />
<osm-tag key="highway" value="primary_link" zoom-appear="13" />
<osm-tag key="highway" value="tertiary" zoom-appear="13" />
<osm-tag key="highway" value="tertiary_link" zoom-appear="13" />
<osm-tag key="highway" value="unclassified" zoom-appear="14" />
<osm-tag key="highway" value="residential" zoom-appear="14" />
<osm-tag key="highway" value="service" zoom-appear="14" />
<osm-tag key="highway" value="living_street" zoom-appear="14" />
<osm-tag key="highway" value="road" zoom-appear="14" />
<osm-tag key="highway" value="cycleway" zoom-appear="14" />
<osm-tag key="highway" value="services" zoom-appear="14" />
<!-- <osm-tag key="highway" value="track" zoom-appear="14" /> --> <!-- Грунтовки -->
<!-- <osm-tag key="highway" value="path" zoom-appear="14" /> --> <!-- Тропа -->
</ways>
</tag-mapping>
Map KRD+ROS.geojson
Код:
{
"type": "FeatureCollection",
"name": "Map KRD+ROS",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "FID": 0 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 39.173232603292476, 47.203168146881211 ], [ 39.227748999209439, 47.355731898849783 ], [ 39.56166192420077, 47.332644455093117 ], [ 39.548032825221519, 47.627401398218659 ], [ 39.916018497660957, 47.947899249168835 ], [ 40.284004170100381, 47.920505432413499 ], [ 40.345335115506956, 47.636585910783111 ], [ 40.120454982349521, 47.24944604428763 ], [ 40.597473446622857, 47.175382014317861 ], [ 41.374332088439424, 46.989769325355098 ], [ 41.728688661899611, 46.466611774440331 ], [ 41.483364880273328, 46.353846263063154 ], [ 40.590658897133231, 46.433745916378619 ], [ 39.875131200723239, 46.933959399538608 ], [ 40.249931422652288, 45.810275503384069 ], [ 39.241378098188669, 45.049905639298103 ], [ 39.323152692064099, 44.56643790387632 ], [ 38.76435963391534, 44.22071601696468 ], [ 37.237900548240681, 44.731271607145246 ], [ 35.404786735533158, 44.808678318198389 ], [ 35.350270339616209, 45.577039659048687 ], [ 37.203827800792574, 45.538867964226448 ], [ 37.721733562003607, 45.78770848162663 ], [ 38.048831937505327, 46.185440289444301 ], [ 37.619515319659321, 46.687937667876504 ], [ 38.280526620152372, 46.767347195010558 ], [ 38.450890357392851, 46.91650685784213 ], [ 39.193676251761325, 47.079176154079008 ], [ 39.173232603292476, 47.203168146881211 ] ] ] ] } }
]
}
Map KRD+ROS.obj
Код:
wkt_geom FID
MultiPolygon (((39.17323260329247603 47.20316814688121099, 39.22774899920943881 47.35573189884978262, 39.5616619242007701 47.33264445509311713, 39.54803282522151875 47.62740139821865881, 39.91601849766095711 47.9478992491688345, 40.28400417010038126 47.92050543241349914, 40.3453351155069555 47.63658591078311133, 40.12045498234952134 47.24944604428763029, 40.59747344662285684 47.17538201431786149, 41.37433208843942367 46.98976932535509832, 41.72868866189961068 46.46661177444033086, 41.48336488027332791 46.35384626306315425, 40.59065889713323116 46.43374591637861926, 39.87513120072323858 46.93395939953860818, 40.2499314226522884 45.8102755033840694, 39.24137809818866884 45.04990563929810321, 39.3231526920640988 44.56643790387632009, 38.76435963391534045 44.2207160169646798, 37.23790054824068108 44.73127160714524564, 35.40478673553315758 44.80867831819838898, 35.35027033961620901 45.57703965904868681, 37.20382780079257401 45.53886796422644778, 37.72173356200360672 45.78770848162663043, 38.04883193750532655 46.18544028944430124, 37.61951531965932105 46.68793766787650412, 38.28052662015237217 46.76734719501055793, 38.45089035739285066 46.91650685784212982, 39.19367625176132464 47.07917615407900769, 39.17323260329247603 47.20316814688121099))) 0
Map KRD+ROS.poly
Код:
polygon
1
39.17323260329247603 47.20316814688121099
39.22774899920943881 47.35573189884978262
39.5616619242007701 47.33264445509311713
39.54803282522151875 47.62740139821865881
39.91601849766095711 47.9478992491688345
40.28400417010038126 47.92050543241349914
40.3453351155069555 47.63658591078311133
40.12045498234952134 47.24944604428763029
40.59747344662285684 47.17538201431786149
41.37433208843942367 46.98976932535509832
41.72868866189961068 46.46661177444033086
41.48336488027332791 46.35384626306315425
40.59065889713323116 46.43374591637861926
39.87513120072323858 46.93395939953860818
40.2499314226522884 45.8102755033840694
39.24137809818866884 45.04990563929810321
39.3231526920640988 44.56643790387632009
38.76435963391534045 44.2207160169646798
37.23790054824068108 44.73127160714524564
35.40478673553315758 44.80867831819838898
35.35027033961620901 45.57703965904868681
37.20382780079257401 45.53886796422644778
37.72173356200360672 45.78770848162663043
38.04883193750532655 46.18544028944430124
37.61951531965932105 46.68793766787650412
38.28052662015237217 46.76734719501055793
38.45089035739285066 46.91650685784212982
39.19367625176132464 47.07917615407900769
39.17323260329247603 47.20316814688121099
END
END
Условия для работы карт
http://global.igpsport.com/home/OSMMapList
* Получено местоположение со спутников
* Приготовленный ранее (.gpx или .fit (?)) или записанный прибором маршрут
* Масштаб: 1Km/ 500/250m.
Не все дороги в картах будут - например, нет
автомагистралей ,
грунтовок и еще несколько. Я добавил
Тропы - отображаются как основные дороги)
Маршрут (.gpx) можно создавать в онлайне на сайте
Openrouteservice. Там сразу можно сохранить трек в формате .gpx Далее это файл загружаем по кабелю USB OTG через телефон в велокомпьютер (через Bluetooth можно только выгрузить треки), либо заранее треки загружаем. Карту (может быть только один файл с расширением .map) и треки по USB OTG загружать в папку iGPSPORT/Navigation
Ну и копия файлов приложена
Вложение 508254
UPDATE. Создал допкарту и добавил туда Грунтовки, Тропы и ж/д дороги
Код:
<ways>
<osm-tag key="highway" value="track" zoom-appear="14" /> <!-- Грунтовки -->
<osm-tag key="highway" value="path" zoom-appear="14" /> <!-- Тропа -->
<osm-tag key="railway" value="rail" zoom-appear="14" /> <!-- Ж/д пути -->
</ways>
Съездил в парк посмотрел как будет выглядеть вживую.
Место 1 (основная дорога), карта OSM
Место 2 (парк), карта OSM
Выводы. Железной дороги нет (не поддерживается значит, в файле карты есть она), Тропы (path) отображены как основная дорога ("желтый цвет"), а вторичные - серым. Масштаб 250 метров очень большой, надо хотя бы 50 м. Ничего не понять с такой навигацией.