5.2 KiB
BGMountains v0.9: meaningful POIs, distinct icons and Garmin TYP route colours
Why v0.8 displayed 'Marina', information boards and orange anchors
The old dataset used unrelated standard tags to force OsmAnd to index symbols. In v0.9 the default poi-overrides-all-types.csv no longer injects synthetic tourism=information;information=board for arbitrary places. The C++ area type 0x09 was also incorrectly tagged leisure=marina, although the BGMountains legend identifies it as shopping area. It is now landuse=retail. We found 0x650b winter waymarks clustering on the Vihren route (not marinas). The output is not for public OpenStreetMap imports without source license clearance.
Build from original IMG to OBF (Linux)
sudo apt install -y build-essential cmake libpng-dev libsqlite3-dev python3 openjdk-21-jre-headless unzip
python3 scripts/build_bgmountains.py \
--img '/path/to/gmapsupp.img' \
--out './BGMountains-output' --download-creator
Or use an already installed OsmAndMapCreator:
python3 scripts/build_bgmountains.py \
--img '/path/to/gmapsupp.img' --creator /path/to/OsmAndMapCreator \
--out ./BGMountains-output
CLI uses 1 worker by default, add --jobs 4 to opt in.
Important: the MapCreator utility is not bundled (large official upstream binary); script downloads it if you specify --download-creator. The online upstream OsmAnd poi_types.xml and rendering_types.xml are fetched too. To work offline provide --poi-base ... --rendering-base ... --creator ... --offline.
Generated files:
BGMountains.osmgeographic source, custombgm_poitags, raw Garmin IDs and hashesosmand-config/poi_types.bgmountains.xml,rendering_types.bgmountains.xmlfor indexingosmand-config/BGMountains-outdoor.render.xmlMUST BE INSTALLED/SELECTED IN OSMAND for custom icons and trail colorssource-pois.csv,poi-types.csv,validation.json,poi-coverage.csvfor checks.obf,mapcreator.log,obf-poi-index.txtonly if MapCreator completed successfully
Install on your phone
- Copy the output
.obfto the OsmAnd offline maps directory or import through OsmAnd. - Import the
.render.xmlstyle in OsmAnd. On Android: Menu → Maps & Resources → Local → Rendering styles → Import, or Settings → Import from file. Some versions require placing the style in the app'srendering/directory and restarting. - Select
BGMountains outdoor v0.9in Menu → Configure map → Map rendering → Map style. - Test at zoom 16-18. Very dense points such as winter waymarks and reservoir/catchment markers intentionally begin at zoom 16-17 to prevent the map from being solid with symbols.
- For search: OsmAnd's POI database/index and on-screen symbols are different. Custom
bgm_poientries are added to the build's POI index, but custom POI categories and 'Nearby POI' behavior may require app-compatible POI definitions. Search by generated fallback name if Nearby doesn't expose them. We cannot guarantee this until the final OBF is inspected on the device. - Remove the older test OBF before loading this one, otherwise the app can display overlapping categories/data.
How to customise
config/poi-overrides-all-types.csv: meaning, stable source Garmin hex → OSM tags. Do not use falseleisure=marinaor fake boards for icons.config/osmand-icons.csv: appearance, code → built-in OsmAnd icon and minzoom. Some obscure icon IDs may vary between app builds: validate with your installed version.config/trail-styles.csv: hiking overlay appearance, extended Garmin line type → color/zoom/width. Colors recovered from TYP; 50 line types audited. Exact Garmin pixel/band patterns aren't reproducible from plain OsmAnd XML alone; the extracted original source TYP remains in the IMG.config/poi-labels-bg.csv: fallback Bulgarian prefix + deterministic hash for unnamed POIs; valid existing names untouched.config/poi-name-fixes.csv: coordinate- and type-specific manual corrections, no fuzzy changes to location names.data/BGMountains-v09-POI-icon-crosswalk.csv: verified legend, all 263 types, default style icon, counted occurrences and sample location.
Known limitations
- IMG → OSM regional export fidelity validated, not mobile screen rendering.
- MapCreator couldn't run in the author's offline environment; a new OBF was NOT generated or inspected in these tests.
- Not every Garmin TYP icon has a built-in OsmAnd equivalent. The native application cannot load arbitrary TYP PNGs from an ordinary OBF/style; exact icon artwork requires a custom OsmAnd application build.
- Road/trail colored overlays are not necessarily independently routable trail geometry. v0.9 no longer creates false routable paths from the decorative extended overlays. Underlying real road/path features retain their physical geometry.
- Many obscure Garmin types still share the generic built-in info icon, not because they mean 'information board', but because their semantics and replacement art are unverified. Users can edit
config/osmand-icons.csv; filenames in OsmAnd icon resources can differ between app versions. - Use this dataset for private testing pending rights clearance from BGMountains and third-party sources.