Карты OSM для Garmin (osm2mp+cgpsmapper)

Как устанавливаете? BaseCamp, формат gmapi?

Нет через MapInstall

Разархивировал архив, запустил файл инстал от администратора, программа карту видит, ставит ее на навигатор, а на нем либо вообще не отображается либо в списке есть но не работает. При повторной установке пишет что base пишет что карта установлена частично

Скажите, а вы описание читаете?
Вот такую строчку там от куда карты скачивали http://garmin.gis-lab.info/
**Важно: если вы используете одну из последних версий BaseCamp, то вам необходимо загружать карты в формате gmapi. **
видели?

Попробуйте BaseCamp с сайта гармина. Удалите с ПК ту карту, которую вы уже установили. Скачайте карту в формате gmapi, распакуйте, копируйте папку FAMILY_XXX.gmapi\FAMILY_XXX.gmap (или ярлык на нее) в
папку %AppData%\Garmin\Maps (для 7ки это будет что-то вроде C:\Users\user\AppData\Roaming\Garmin\Maps)

Дело в том что создав вот такую FAMILY_XXX.gmapi\FAMILY_XXX.gmap фигню Вы вводите пользователей в заблуждение.
Оставьте в архивах только FAMILY_XXX.gmap и им будет проще устанавливать карты на компьютер

  • просто скопировать папку FAMILY_XXX.gmap (или ярлык на нее) по указанному ниже пути (в зависимости от ОС компьютера она же %AppData%\Garmin\Maps ):
    для WinXP путь C:\Documents and Settings\All Users\Application Data\GARMIN\Maps
    для Win7/8/10 путь C:\ProgramData\Garmin\Maps

У меня сделано так же. Как мне объяснили умные люди, верхняя директория “gmapi” нужна для пользователей iOS.

Под виндой GarminExpress при установке официальной карты на компьютер создает только похожее
%AppData%\Garmin\Maps\FAMILY_XXX.gmap
без FAMILY_XXX.gmapi\ неужели под iOS создается FAMILY_XXX.gmapi\FAMILY_XXX.gmap
Странно,… но если так то извиняйте за фигню.
Тогда наверно надо подробней об установке не только в реадми, но и прямо на сайте написать.

Вот установка автоматом для твоих


@Echo off
:: =============================================================
 Set BASEDIR=%CD%
 Set WORK=%BASEDIR%\Work
   Mkdir "%WORK%\input" 
   Cd "%WORK%\input"

:: =============================================================
:: Секция - Обработка карт для BaseCamp или MapSource в формате *.gmapi

:: =============================================================
Rem Скачиваем архив с картой OSM для BaseCamp или MapSource в формате *.gmapi
Echo .   Download OSM_MapTourist-gmapi-RU.zip file
   wget "https://maptourist.org/osm-garmin/OSM-MapTourist-gmapi-RU.zip" -N
:: -----------------------------------
Rem Извлекаем файлы карт OSM из архива
Echo .   Extract OSM data files from OSM_MapTourist-gmapi-RU.zip
   Mkdir "%WORK%\output" 
   "%WORK%\7-Zip\7z.exe" x OSM-MapTourist-gmapi-RU.zip -o"%WORK%\output" -y -r
:: -----------------------------------
Rem Устанавливаем карты OSM 
   Rmdir /q /s "%ALLUSERSPROFILE%\Garmin\Maps\OSM_MapTourist-RU.gmap"
   Mkdir "%ALLUSERSPROFILE%\Garmin\Maps\OSM_MapTourist-RU.gmap"
   set "name_f=OSM-2018.typ"
   for /f "delims=" %%a in ('dir /a-d/b/s "%WORK%\output\%name_f%"') do xCopy /e /y "%%~dpa"*.* "%ALLUSERSPROFILE%\Garmin\Maps\OSM_MapTourist-RU.gmap"
:: -----------------------------------
Rem Заменяем файл TYP на свой 
   Copy /y "%WORK%\OSM-2018.typ" "%ALLUSERSPROFILE%\Garmin\Maps\OSM_MapTourist-RU.gmap"
:: -----------------------------------
Rem Удаляем временную папку 
   Rmdir /q /s "%WORK%\output" 

:: =============================================================
Rem Удаляем TileCache файлы
Echo .   Clear TileCache files
   Del /q /s %LOCALAPPDATA%\Garmin\BaseCamp\TileCache\*.*
   Del /q /s %LOCALAPPDATA%\Garmin\MapInstall\TileCache\*.*
   Del /q /s %LOCALAPPDATA%\Garmin\HomePort\TileCache\*.*
   Del /q /s %APPDATA%\Garmin\MapSource\TileCache\*.*


А вот пример автоустановки центрального фед.округа для GisLab


@Echo off
:: =============================================================
 Set BASEDIR=%CD%
 Set WORK=%BASEDIR%\Work
   Mkdir "%WORK%\input" 
   Cd "%WORK%\input"

:: =============================================================
:: Секция - Обработка карт для BaseCamp или MapSource в формате *.gmapi

:: =============================================================
Rem Скачиваем архив с картой OSM для BaseCamp или MapSource в формате *.gmapi
Echo .   Download ru.cfo.gmapi.7z file
    wget "http://garmin.gis-lab.info/files/ru.cfo.gmapi.7z" -N
:: -----------------------------------
Rem Извлекаем файлы карт OSM из архива
Echo .   Extract OSM data files from ru.cfo.gmapi.7z
   Mkdir "%WORK%\output" 
  "%WORK%\7-Zip\7z.exe" x ru.cfo.gmapi.7z -o"%WORK%\output" -y -r
:: -----------------------------------
Rem Устанавливаем карты OSM 
   Rmdir /q /s "%ALLUSERSPROFILE%\Garmin\Maps\FAMILY_501.gmap"
   Mkdir "%ALLUSERSPROFILE%\Garmin\Maps\FAMILY_501.gmap"
   set "name_f=osm_501.typ"
   for /f "delims=" %%a in ('dir /a-d/b/s "%WORK%\output\%name_f%"') do xCopy /e /y "%%~dpa"*.* "%ALLUSERSPROFILE%\Garmin\Maps\FAMILY_501.gmap"
:: -----------------------------------
Rem Заменяем файл TYP на свой 
  Rem Copy /y "%WORK%\osm_501.typ" "%ALLUSERSPROFILE%\Garmin\Maps\FAMILY_501.gmap"
:: -----------------------------------
Rem Удаляем временную папку 
   Rmdir /q /s "%WORK%\output" 

:: =============================================================
Rem Удаляем TileCache файлы
Echo .   Clear TileCache files
   Del /q /s %LOCALAPPDATA%\Garmin\BaseCamp\TileCache\*.*
   Del /q /s %LOCALAPPDATA%\Garmin\MapInstall\TileCache\*.*
   Del /q /s %LOCALAPPDATA%\Garmin\HomePort\TileCache\*.*
   Del /q /s %APPDATA%\Garmin\MapSource\TileCache\*.*

:: =============================================================
Rem Удаляем временную папку 
   Cd "%WORK%"
   Rmdir /q /s "%WORK%\input" 

Echo =============================================================
Echo End
Echo =============================================================
Rem Pause


Всем спасибо. Получилось

Подскажите есть ли смысл собирать карты по областям, возможно есть смысл собирать карты только по федеральным округам и “Вся Россия”, тогда актуальность карты возрастет.
Или хотя бы обьединить Москву с МО и обьединить Санкт-Петербург с Ленинградской областью.

Принцип сборки немного другой: федеральный округ не собирается с нуля из сырых данных, а берутся уже готовые карты областей, и для них строится общий индекс. Т.е. по времени выигрыша большого не будет. А отдельные области вполне востребованы.

Чем плох вариант взять федеральный округ целиком и при заливке в прибор выбрать нужные регионы?

Неплохой вариант.

Также обнаружил проблему разрывов отбражения крупных дорог.
Скрин пример.

Это связано с тем, что на уровень отображения дороги влияет не только её статус, но и проходит ли она по населенному пункту.
Скорее всего, это было сделано специально. Но я уже не помню зачем (полагаю, если повысить уровень отображения в городе, в центре многих городов мы получим кашу вместо дорожной сетки).

А можете отключить эту опцию, чтоб крупные дороги не прерывались, а то при просмотре карты на удалении ее информативность падает из за этих обрезков.

тот же участок на том же масштабе и детализации с “правильным отображение крупных дорог”

Если рисовать городские дороги на том же уровне, что и загородные, получим кашу и тормоза. Не лучший вариант.

Попробуем по-другому. Я добавил еще одно условие, и теперь дороги внутри города будут отрисовываться как и загородные, если у них есть идентификационный номер (тег ref)

P.S. Вот пробничек https://yadi.sk/d/AXa-PKSAuZvp-A
P.P.S igitov, а у тебя есть идеи, как лучше решить эту проблему? ref выглядит слегка спорным вариантом.

Отличный пробник.

Мне думается, полностью эту проблему не решить, не применяя костылей. Всё равно с чем-то придётся мириться.

ref, я так понял, спорный потому, что 1) не всякая сквозная дорога его имеет, 2) возможно, его могут иметь какие-то нецелевые для нас дороги и улицы?

Какие идеи у меня. Я бы ввёл, например, новый тег для транзитных дорог внутри НП.

Ковырянием конфигов ничего принципиально нового не добиться.

Можно порассуждать, а вот если бы osm2mp научился проверять улицы на наличие примыкания к дорогам того же класса… При условии, что это неветвящаяся последовательность в пределах одного класса. Результат не был бы на 100% удовлетворительным, но я б поэкспериментировал.

Просто надо type ставить независимо от inside_city, а вот уже routeparams дифференцировать.
Тогда отображение будет одинаковым в городе/не городе и будет понятно, каким маршрутом лучше проезжать через НП.