Garmin custom maps not always visible

Hi!

I’m trying to create my own Garmin maps based on the OpenTopomap style since the normal official OpenTopomaps lack address searching.

The creation process works flawlessly now and the maps are working great so far.
Now I tried to generate several other maps to have them on my GPS device (GPSMap 66s if it matters).
But when I generate maps for Germany and Belgium, only Germany is visible in the map selection screen of the Garmin device. Belgium alone works, the map is recognized and displayed. If I copy a map of France to the device, Belgium disappears again. France and Germany together are working on the other side.

This is the scrip I am currently using:

create_map.sh
#!/bin/bash

VARIANT=$1
BOUNDS=$2
SEA=$3

#settings variables 

if [ $VARIANT = germany ]; then

DESC="OSM-Germany"
MAPID="42000000"
ABBR="DE"
NAME="Germany"
ID=1
FAMILY="4201"

fi


if [ $VARIANT = france ]; then

DESC="OSM-France"
MAPID="42000001"
ABBR="FR"
NAME="France"
ID=2
FAMILY="4202"

fi

if [ $VARIANT = belgium ]; then

DESC="OSM-Belgium"
MAPID="42000002"
ABBR="BE"
NAME="Belgium"
ID=3
FAMILY="4203"

fi

if [ $VARIANT = netherlands ]; then

DESC="OSM-Netherlands"
MAPID="42000004"
ABBR="NL"
NAME="Netherlands"
ID=4
FAMILY="4204"

fi

#cleanup of working directory

rm work/*.img
rm work/*.pbf
rm work/*.poly
rm work/*.list
rm work/*.args
rm work/*.txt
rm work/*.tdb

#cleanup of source dircectory
rm in/*.pbf
rm in/*.poly

#adjust FID in TYP

sed -i "s/FID=.*/FID=$FAMILY/g" in/opentopomap.txt

#get bounds if specified
if [[ $BOUNDS = bounds ]]; then
 rm in/bounds.zip
 wget https://www.thkukuk.de/osm/data/bounds-latest.zip -O in/bounds.zip
fi

#get sea if specified
if [[ $SEA = sea ]]; then
 rm in/sea.zip
 wget https://www.thkukuk.de/osm/data/sea-latest.zip -O in/sea.zip
fi  

#download sources
wget https://download.geofabrik.de/europe/$VARIANT-latest.osm.pbf -O in/$VARIANT-`date "+%Y-%m-%d"`.osm.pbf
wget https://download.geofabrik.de/europe/$VARIANT.poly -O in/$VARIANT.poly

cd work

java -Xmx4g -jar ../software/splitter/splitter.jar --description=$DESC --mapid=$MAPID --max-nodes=900000 --polygon-file=../in/$VARIANT.poly ../in/*.osm.pbf

java -Xmx4G -jar ../software/mkgmap/mkgmap.jar --latin1 --mapname=$MAPID --country-abbr=$ABBR --country-name=$NAME --family-id=$FAMILY --product-id=$ID --series-name=$DESC --family-name=$DESC --index --housenumbers --route --net --location-autofill=is_in,nearest --order-by-decreasing-area --reduce-point-density=4 --reduce-point-density-polygon=4 --drive-on=detect,right --min-size-polygon=8 --polygon-size-limits="24:12, 18:10, 16:8, 14:4, 13:2, 11:0" --add-pois-to-areas --add-pois-to-lines --link-pois-to-ways --process-destination --process-exits --dem-dists=9942,9942,19884,39768,53024,53024 --show-profiles=1 --draw-priority=20 --gmapsupp --style-file=../in/opentopomap --bounds=../in/bounds.zip --precomp-sea=../in/sea.zip -c template.args ../in/opentopomap.txt

Does anyone have a hint what might be wrong here? FamilyID is different between maps, so is MapID.

Thanks a lot!

Edit: Saw the thread over there: Self created maps are not always visible on Garmin Device (Dakota 20)
But unfortunately it wasn’t really helpful.

Ok, I think I got it.
The problem was the MAPID=“42000000” option which did not result in different names for the map tiles generated by the splitter. So I had tiles with the same name inside my .img files:
MAPID=“42000000” generated something like 42000001, 42000002,42000003…
and MAPID=“42000001” generated the same names for the tiles: 42000001, 42000002,42000003…
Now I changed 42000000, 42000001 etc to 40100000, 40200000 and got 40100001, 40100002, 40100003… as names and now the maps are visible.

3 Likes