This commit is contained in:
nq
2026-10-14 17:04:46 +00:00
parent f8ede7f4a6
commit fe9e9b593e
14 changed files with 4829 additions and 91 deletions
+2
View File
@@ -1,3 +1,5 @@
garmin2osmand-v3/*.osm
*.obf*
*.ocbf*
compiling-obf/*
bgmountains-build/*
-19
View File
@@ -1,19 +0,0 @@
## 0.3.0
- Adds --whole-map and --plan.
- Uses geographical submap coverage interval union instead of one large rectangular export loop.
- Commits completed scanlines atomically and enables efficient continuation with --resume.
- Ensures compatible inputs/options when resuming via a settings fingerprint.
- Tested full Bulgarian IMG on zoom 10: 330 PNG tiles; peak RSS 20 MiB, 6.8 seconds, resumed in 0.02 seconds.
- Planned countrywide 12–16: 1,698,680 candidate tiles (prior global rectangle 1,705,377).
- Full zoom-16 countrywide render has NOT been executed or sized in this environment.
## 0.2.0
- TYP line, polygons, icons, LBL codepage and antialiasing improvements.
- Real-map 2,033-tile Rila test, 36.29 MiB, 34 seconds, peak 28 MiB.
## v0.6 (2026-10-14)
- Reviewed 67 POI code icons directly against supplied BGMountains legend; 48 semantic default updates and a detailed CSV log.
- Corrected extended POI LBL pointer offset (117 changed decoded labels) and added a subdivision-bounds sanity check (5,602 suspicious points filtered).
- Added optional coordinate/name exact-match CSV fixes, no automatic speculative place-name correction.
- Added strict reviewed nationwide type catalog, annotated legacy catalog, 16×16 TYP bitmap offline explorer, and GPXSee QA waypoint file.
- Original OBF has not been validated, and no actual IMG is included in this source release.
+4 -1
View File
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.16)
project(garmin2osmand VERSION 0.6.0 LANGUAGES CXX)
project(garmin2osmand VERSION 0.7.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(PNG REQUIRED)
@@ -23,3 +23,6 @@ if(Python3_Interpreter_FOUND)
add_test(NAME native_vector_export COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_vector.py $<TARGET_FILE:garmin2osm>)
add_test(NAME bgmountains_legend_audit COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_legend_audit.py)
endif()
if(Python3_Interpreter_FOUND)
add_test(NAME osmand_obf_pipeline_xml COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_obf_pipeline.py)
endif()
+110 -49
View File
@@ -1,66 +1,127 @@
# BGMountains Garmin IMG → OSM v0.6 (legend-reviewed, spatially validated)
# BGMountains Garmin IMG → OsmAnd OBF (v0.7)
This is an **incremental source + QA release**, based on the v0.5 converter. Original map IMG/OBF binaries are **not bundled**. The source map's license is **not** the converter's GPL license: map-derived data, icons, CSV and examples are for private verification unless the rights holders authorize redistribution.
**One command builds the C++ IMG converter, emits a reviewed OSM, generates complete custom OsmAnd POI and map type definitions, validates the intermediate source/OSM data, and invokes OsmAndMapCreator to build an OBF.**
## Corrected
Unlike v0.6's optional `build_obf.sh` wrapper, the main script no longer expects you to create any missing XML files. First-time setup requires access to the official OsmAnd resource files and the OsmAndMapCreator Java tool; the script can download both on demand. Java, Python, CMake, libpng, SQLite3 and a C++ compiler must be installed.
1. **67 exact extracted TYP icon ↔ supplied BGMountains legend matches**, 60 of them present as decoded POI types in the IMG (7 icons occur only in its TYP catalog), including 48 changes to the previous semantic defaults. Changes appear in `data/legend-corrections-log.csv`, and new mappings are embedded directly in `src/vector.cpp` as safe fallbacks. Every verified icon also gets a `garmin:legend` tag to aid inspection. Optional `config/poi-overrides-legend-reviewed.csv` permits further edits while retaining the original 1,871 type rows.
2. **Extended-point label pointer**: v0.5 read the label pointer at `p+len-3`; Garmin's layout places it at `p+6`, before the optional extra byte. Correcting this fixed or cleared **117 label outcomes**. See `data/extended-label-decoder-changes.csv`, with old/new names/coordinates. The string `есебър` was a decoder artifact at the *wrong geographic location*, not a misspelling to force to `Несебър`. The actual town of Несебър is in the normal classic point data at 42.6599550,27.7197504, mapset 02235056.
3. **Spatial sanity gate**: Extended POIs outside their own TRE subdivision bounds (beyond 0.00005° margin) are no longer emitted. **5,602 suspected/invalid point records** disappear; classic POI count remains **407,820**. This is a conservative defense against malformed extended streams, not independent Garmin specification conformance testing. Retained extended records may still warrant validation. Total kept POIs: **410,563**, distinct types: **263** (113 classic, 150 extended). The old 1,871-code inventory remains available, annotated with exclusion counts.
4. **Optional per-feature POI name corrections**, `--poi-name-fixes config/poi-name-fixes.csv` uses an exact source-map ID, hex code, latitude, longitude, previous name and replacement name. Never blanket-correct all points with a particular substring: it could mask a decoder error. No name corrections are active by default.
5. **Threads are off by default** (`--jobs 1`); use `--jobs 4` to enable four parallel workers. POI rules apply consistently in both cases.
## Files
- `config/poi-overrides-all-types.csv` (same as `config/poi-overrides-legend-reviewed.csv`): **corrected editable 1,871-row override file** (schema `code,name_contains,mode,tags,note`). 60 active POI-code rows corrected (plus 7 extra verified icons embedded in C++ for future occurrences). Unverified rows are left inert and flagged in the notes.
- `config/poi-name-fixes.csv`: name correction template, no active fixes by default.
- `data/BGMountains-unique-poi-types.csv` (same as `data/BGMountains-unique-poi-types-STRICT-reviewed.csv`): **current useful catalog: 263 retained raw types**, current counts, reviewed classification status, up to five real source coordinates and names per type.
- `data/BGMountains-unique-poi-types-reviewed.csv`: **historical 1,871-type catalog**, with v0.5 counts, exclusions and review status; do not mistake rejected coordinates for correct map objects.
- `data/legend-corrections-log.csv`: 60 present-and-verified mappings; `data/all-67-icon-legend-matches.csv`: 67 TYP icon-to-legend matches (7 icon codes not observed as POIs), including original/new OSM semantic tags and one coordinate each.
- `data/extended-label-decoder-changes.csv`: 117 extended-label before/after results (some names vanish because they came from the wrong LBL offset).
- `data/legend-verified-POI-QA-waypoints.gpx`: 179 sample POIs of verified hex codes, for simultaneous visual comparison in GPXSee + original IMG. Exact count is in the GPX file.
- `data/BGMountains-POI-Explorer.html`: no-network/offline searchable icon reference, with copyable sample coordinates and basemap links.
- `data/poi-icons/*.png`: embedded Garmin icons extracted from the original TYP (copyright depends on source data).
- `tools/validate_pois.py`: previously tested source→OSM audit; limitation remains that it is not a third-party ground-truth or OBF assertion.
## Build and validation
## One-command full Bulgarian map
```bash
sudo apt-get install -y cmake g++ libpng-dev libsqlite3-dev python3
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j "$(nproc)"
ctest --test-dir build --output-on-failure
sudo apt update
sudo apt install -y build-essential cmake libpng-dev libsqlite3-dev python3 openjdk-21-jre-headless unzip
./build/garmin2osm --input 'gmapsupp.img' \
--output BGMountains-legend-reviewed.osm \
--poi-overrides config/poi-overrides-legend-reviewed.csv \
--poi-name-fixes config/poi-name-fixes.csv \
--poi-manifest BGMountains-source-reviewed.csv \
--poi-types-out BGMountains-types-reviewed.csv
python3 tools/validate_pois.py compare \
--source BGMountains-source-reviewed.csv \
--osm BGMountains-legend-reviewed.osm \
--rules config/poi-overrides-legend-reviewed.csv \
--report validated.json --mismatches mismatches.csv
python3 scripts/build_bgmountains.py \
--img '/path/to/gmapsupp.img' \
--out '/path/to/BGMountains-build' \
--download-creator
```
Parallelism: append `--jobs 4` to the converter command if desired; otherwise it uses one worker.
If you **already have** OsmAndMapCreator, use `--creator /path/to/OsmAndMapCreator` in place of `--download-creator`. You can also `export OSMAND_MAPCREATOR=/path/to/OsmAndMapCreator` and omit `--creator`.
**Adding one verified name correction:** edit `config/poi-name-fixes.csv`, with this schema:
OsmAndMapCreator is ~150 MB and requires extra disk space and Java RAM. By default, the script downloads it **only when** you request `--download-creator`; upstream OsmAnd `poi_types.xml` and `rendering_types.xml` are downloaded or read from your MapCreator directory automatically, then cached in the output folder. Requires Internet for first use unless you supply existing XML files with `--poi-base FILE --rendering-base FILE`.
**Multithreading remains disabled by default (`--jobs 1`).** Pass `--jobs 4` explicitly for the IMG parsing stage. It does not control MapCreator's Java processing.
If the Java process runs out of memory:
```bash
python3 scripts/build_bgmountains.py --img gmapsupp.img --out ./BGMountains-build \
--creator ~/OsmAndMapCreator --jobs 4 \
--java-opts '-Xms1G -Xmx12G'
```
The full-country OSM can be large. Allocate substantial disk space for OSM XML, temporary indexing databases, and OBF output. The script retains intermediate files for auditing.
## What is generated
```text
BGMountains-build/
BGMountains.osm # converted source, Garmin type and name kept
source-pois.csv # source point audit manifest
poi-types.csv # observed type counts and example coordinates
validation.json # source-to-OSM counts/mismatches
mismatches.csv
converter.log
validator.log
upstream/poi_types.xml # official OsmAnd definitions (if downloaded)
upstream/rendering_types.xml
osmand-config/
poi_types.bgmountains.xml # FULL base OsmAnd POI rules + 1 custom type per observed Garmin code
rendering_types.bgmountains.xml # FULL base render encoding + map encoding for each Garmin code
BGMountains-custom.render.xml # OPTIONAL visual style for custom icons in OsmAnd
type-index-summary.json
mapcreator.log
*.obf # full map (created by OsmAndMapCreator)
obf-poi-index.txt # dump from inspector.sh, if available
build-manifest.json
```
For the v0.6 reviewed **national catalog**: 263 decoded types, 410,563 POIs, 87 types with **at least 100** occurrences, 86 with Garmin TYP bitmap extraction. Actual new runs produce their own observed counts. The default threshold is 100; use `--threshold 250` to change it.
### Three different meanings of 'icon'
1. **Native OsmAnd map icon.** Verified type receives proper OSM tags (`natural=spring`, `tourism=hotel`, etc.) from `config/poi-overrides-all-types.csv`. Existing OsmAnd styles choose their built-in symbols.
2. **Custom Garmin type in OBF.** Every observed POI receives `garmin:type` and `bgm_poi=type_0xHEX`; the generated POI and map type XML preserve those types as a dedicated category. Map-index objects at high-frequency types are stored from zoom **15** by default, rare types from zoom **17** (adjustable by `--frequent-zoom`, `--rare-zoom`). Native OsmAnd styles may not draw custom types without a matching style.
3. **Actual Garmin TYP bitmap.** Preserved separately as PNG in `data/poi-icons/`; an OBF **does not embed third-party bitmap resources into the app icon set**. To display these exact symbols requires changing OsmAnd application resources, not just editing XML. A different installed OsmAnd render style may refer to already available built-in symbols.
## Assign additional built-in OsmAnd icons yourself
Edit `config/osmand-icons.csv`:
```csv
mapset,code,lat,lon,old_name,new_name,note
# Example (illustrative; this row is NOT a real correction):
# 02234071,0x6609,42.1897745,23.2835913,Х.Иван Вазов,х. Иван Вазов,Check actual Garmin source before use
code,show_in_custom_style,minzoom,osmand_builtin_icon,...
0x650b,yes,16,information,...
```
The original `name` and coordinates in the source manifest are quantized to seven decimals for exact matching. A manual name fix affects both OSM and the manifest, so it **cannot count as independent evidence of cartographic correctness**; record your verification separately.
For common unknowns (>=100 occurrences with no verified standard OSM semantic category) the sample config enables a generic **built-in** `information` icon in an optional style. For verified classes, `show_in_custom_style=no` lets the stock OsmAnd map style draw a more meaningful native icon. The file includes one entry for **all 263 source types**, occurrence counts and sample coordinates. Change the `osmand_builtin_icon` to a valid icon ID supported by your installed OsmAnd version and set `show_in_custom_style=yes` to override the default.
## What this does not prove
After building, install `BGMountains-custom.render.xml` as a custom OsmAnd rendering style in the application's `rendering` directory, then select the corresponding map style. It depends on OsmAnd's `default` style. It is optional and **not automatically installed** by placing the OBF on the device. Its exact icon rendering has not been device-tested in this release; built-in IDs and application versions may differ. Avoid over-rendering at low zoom because 410k points can be slow.
The user's full `.obf` was not provided. Compile it again from the updated OSM source and inspect its POI categories/index; neither a successful OSM export nor this audit proves that OsmAnd indexing retains all custom tags. Geometry classification for the map's **area and line legend** remains a separate review (this patch principally covers POIs). Extended types other than those confirmed by icons are **unverified**, even when they pass the subdivision bounds check. Several extended nautical symbols (e.g., navigation lights) appear plausible but have no matching extracted TYP glyph.
## Test a region first
## 0x10d1f / Несебър
```bash
python3 scripts/build_bgmountains.py --img gmapsupp.img \
--out ./rila-build --bbox 23.22,42.08,23.47,42.29 \
--creator ~/OsmAndMapCreator
```
The v0.5 type list showed `есебър` at **43.0592179,27.7399421**. At that latitude it is ~44 km north of the original Nesebar town POI. The v0.6 label-pointer fix no longer returns `есебър` at that record, and the subdivision bounds check suppresses the spurious record. **No synthetic `Несебър` POI has been inserted.** The real original city/town record is preserved unchanged.
Alternatively use `--prepare-only` to stop before Java: this produces the OSM plus generated XML and validation reports.
## Rebuild from existing OSM
Only use an OSM generated by **v0.7 or later** containing `bgm_poi` tags:
```bash
python3 scripts/build_bgmountains.py \
--osm ./BGMountains-build/BGMountains.osm \
--catalog ./BGMountains-build/poi-types.csv \
--creator ~/OsmAndMapCreator \
--out ./obf-rebuild
```
Original v0.6 OSM exports **lack** the `bgm_poi` classifier. The script rejects those for this path rather than quietly producing an incomplete custom POI index. To reuse old data, rerun the IMG extraction with v0.7.
## How POIs are edited
- `config/poi-overrides-all-types.csv`: reviewed original IMG type → semantic OSM tags (five-column CSV). You can override/add rules, preserving provenance. This includes the earlier 67 legend/icon matches.
- `config/poi-name-fixes.csv`: coordinate-specific correction of verified names, never guessed universally.
- `config/poi-additions.csv`: manually add personally verified POIs.
- `config/osmand-icons.csv`: optional on-screen **stock OsmAnd** symbol selections for custom raw types.
- `data/BGMountains-unique-poi-types.csv`: counts, names, five real sample coordinates per Garmin hex type.
- `data/poi-icons`: 96 extracted TYP bitmaps for reference, not automatically installed into OsmAnd.
### Validation
The C++/Python roundtrip test checks extracted source POI manifest against OSM coordinates, names and tags. `ctest --test-dir build --output-on-failure` runs 5 bundled tests, including checks of full upstream XML augmentation. On the tested source bbox (23.22,42.08,23.47,42.29) a v0.7 extraction produced 3,986 POIs across 60 types and zero source-versus-OSM mismatches. **These tests do not assert OBF persistence** until MapCreator runs on your machine and `obf-poi-index.txt` is reviewed.
OsmAnd has separate indexed data for map rendering and POI search, and an additional app-side style/icons component. A successful OBF build does not prove every icon will be visible. To debug OBF use `~/OsmAndMapCreator/inspector.sh -vpoi /path/to/map.obf` and compare the categories to `osmand-config/type-index-summary.json`.
## Upstream and redistribution
The repository's C++ converter has its own `LICENSE`; BGMountains-derived SVG/PNG icons, data, examples and Garmin IMG/OBF remain subject to map licensors' conditions. Do not redistribute the full data release or generated OBF as unrestricted ODbL/CC0 without additional rights clearance. The script downloads official OsmAnd XML into a private build directory rather than repackaging those resource files in this source ZIP.
Official references:
- https://osmand.net/docs/technical/map-creation/create-offline-maps-yourself/
- https://github.com/osmandapp/OsmAnd-resources/tree/master/poi
- https://github.com/osmandapp/OsmAnd-resources/tree/master/obf_creation
- https://osmand.net/docs/technical/osmand-file-formats/osmand-rendering-style/
+4 -4
View File
@@ -1,5 +1,5 @@
export JAVA_OPTS="-Xms256M -Xmx19G"
export JAVA_OPTS="-Xms256M -Xmx25G"
/home/opthq/vector-v4/garmin2osmand-v3/scripts/build_obf.sh \
/home/opthq/vector-v4/osm-map-creator \
/home/opthq/vector-v4/garmin2osmand-v3/Bulgaria-Garmin.osm
../../scripts/build_obf.sh \
$(realpath .) \
$(realpath ../Bulgaria-garmin.osm)
+264
View File
@@ -0,0 +1,264 @@
code,show_in_custom_style,minzoom,osmand_builtin_icon,count,garmin_icon_extracted,legend_en,reviewed_osm_tags,example_lat,example_lon,note
0x200,no,18,information,2,yes,Capital City,place=city;capital=yes,41.0612941,28.8116670,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x800,no,18,information,51,yes,Large City,place=city,43.9025259,22.2788572,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x900,no,16,information,283,yes,Town,place=town,42.0570374,24.5459247,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0xd00,yes,16,information,6610,no,,,41.6287208,23.7694144,Unclassified: verify against Garmin TYP legend before changing the icon.
0xe00,yes,16,information,114,no,,,43.9952660,22.8717756,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1100,yes,16,information,8430,no,,,42.5975990,22.5972247,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2800,no,16,information,54902,no,,place=locality,42.6277471,24.3122506,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2a07,yes,16,information,227,no,,,43.8551474,25.9693837,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2a0e,yes,16,information,525,yes,,,42.0046806,24.8740768,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2b00,no,16,information,1558,no,,tourism=hotel,42.6465440,27.6449919,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2c01,no,18,information,20,yes,,,42.0264173,23.9946342,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c02,yes,16,information,538,yes,,,42.3479176,25.0754786,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c03,yes,16,information,474,yes,,,43.2219315,25.7480693,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c05,no,16,information,2481,yes,School,amenity=school,41.7214394,24.6845198,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2c06,no,18,information,57,yes,,,43.2240987,27.9363871,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c07,no,18,information,20,yes,,,43.1368518,24.7227359,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c08,yes,16,information,1328,yes,,,41.9112968,24.9703360,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2c0b,no,16,information,1606,yes,Church,amenity=place_of_worship,43.0217957,24.8099613,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2d01,no,18,information,68,no,,,42.8797030,25.3179932,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2d02,yes,16,information,434,no,,,42.1507859,24.7315550,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2d03,no,18,information,57,no,,,42.6922703,23.3241892,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2d09,no,16,information,337,yes,,leisure=swimming_pool,41.8625021,23.5053134,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2e02,yes,16,information,477,no,,,41.6551137,25.5503798,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e03,yes,16,information,502,no,,,43.2763910,27.9675651,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e04,no,18,information,66,no,,,42.5185919,27.4564004,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e05,no,16,information,487,yes,Pharmacy,amenity=pharmacy,42.7442837,25.3431416,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2e06,yes,16,information,348,no,,,43.4717417,23.9467192,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e07,no,16,information,105,yes,Clothes shop,shop=clothes,43.0698609,25.6080151,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2e08,no,18,information,13,no,,,42.7295208,23.2671332,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e09,no,18,information,8,no,,,43.2294202,27.8701901,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e0a,yes,16,information,159,no,,,43.8517356,25.9867859,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2e0b,no,18,information,52,no,,,42.1881008,24.3556809,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f00,yes,16,information,1269,yes,,,42.9236698,24.2466116,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f01,yes,16,information,778,no,,,41.5430832,23.2712317,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f03,yes,16,information,106,no,,,41.3775158,25.0830102,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f05,no,16,information,486,no,,amenity=post_office,42.0306015,23.8108063,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2f06,yes,16,information,320,no,,,42.3073840,23.8596869,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f08,yes,16,information,123,yes,,,42.6397204,23.3731771,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f0a,no,18,information,4,yes,Synagogue,amenity=place_of_worship;religion=jewish,41.5711713,23.7286234,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2f0b,yes,16,information,1499,no,,,43.7308860,23.9443588,Unclassified: verify against Garmin TYP legend before changing the icon.
0x2f0c,no,16,information,320,yes,Mosque,amenity=place_of_worship;religion=muslim,44.0549612,26.7991304,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x2f0e,no,18,information,4,yes,Car Wash,amenity=car_wash,42.2939301,22.7035904,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x3001,yes,16,information,170,yes,,,43.3623934,25.1447439,Unclassified: verify against Garmin TYP legend before changing the icon.
0x3002,yes,16,information,564,no,,,42.5638032,27.6036644,Unclassified: verify against Garmin TYP legend before changing the icon.
0x3003,yes,16,information,841,no,,,43.2501698,27.7748966,Unclassified: verify against Garmin TYP legend before changing the icon.
0x3006,no,18,information,85,yes,,,43.7391043,28.5608482,Unclassified: verify against Garmin TYP legend before changing the icon.
0x3007,yes,16,information,132,no,,,43.2023406,25.7318473,Unclassified: verify against Garmin TYP legend before changing the icon.
0x3008,no,18,information,37,yes,Fire Station,amenity=fire_station,42.5666571,27.6193285,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x4700,no,16,information,101,yes,Port,industrial=port,41.6431189,25.2845192,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x4e00,no,18,information,14,no,,,41.9877291,24.0870094,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6400,no,16,information,465,yes,Quarry,landuse=quarry,40.8776808,23.9436078,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6401,no,16,information,1679,yes,Bridge,man_made=bridge,42.6645684,22.9691291,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6402,no,16,information,6186,yes,Building,building=yes,42.5507569,23.2217932,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6403,yes,16,information,1729,yes,Graveyard/Tombstone,,43.0418801,23.5914874,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6404,no,16,information,1507,yes,Church,amenity=place_of_worship,42.1896243,27.0861053,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6405,yes,16,information,260,yes,Hunting Lodge,,42.7514720,27.2207522,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6406,no,16,information,854,yes,Barrier/Gate,barrier=gate,41.5502286,24.7455668,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6407,no,16,information,2861,yes,Picnic Site,tourism=picnic_site,41.9156528,25.3233576,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6408,no,18,information,12,yes,Mountain Rescue,emergency=mountain_rescue,42.6026416,23.2414269,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6409,no,16,information,1235,yes,Monument,historic=monument,43.1282043,23.6027098,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x640a,yes,16,information,2095,yes,Danger,,43.1507993,25.3284001,Unclassified: verify against Garmin TYP legend before changing the icon.
0x640b,no,16,information,1128,yes,Chapel,amenity=place_of_worship,41.9598985,24.3688774,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x640c,no,16,information,1353,yes,Mine Shaft,man_made=mine_shaft,43.0497336,22.9328442,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x640d,yes,16,information,137,yes,Lift,,42.6056242,23.2995987,Unclassified: verify against Garmin TYP legend before changing the icon.
0x640e,no,16,information,977,yes,Bus Stop/Station,highway=bus_stop,43.3513427,25.1430917,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x640f,yes,16,information,2766,yes,Graveyard/Tombstone,,42.0345068,22.4919534,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6410,no,18,information,98,yes,,,43.6105728,23.6852574,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6411,no,16,information,875,yes,Tower,man_made=tower,41.7411375,24.8182654,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6413,no,18,information,76,yes,Tunnel,,42.6872063,23.3418703,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6414,no,16,information,32922,yes,Drinking Water,amenity=drinking_water,43.1117034,23.7205982,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6415,no,16,information,264,yes,Camp Site,tourism=camp_site,41.7506647,25.1023221,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6416,no,16,information,2886,yes,Ruins,historic=ruins,41.5940452,24.3094182,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6417,no,16,information,8868,yes,Well,man_made=water_well,42.2628808,24.2223430,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6418,yes,16,information,305,yes,,,42.7693677,26.3003898,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6419,yes,16,information,113,yes,,,42.5478601,26.7053819,Unclassified: verify against Garmin TYP legend before changing the icon.
0x641a,no,18,information,62,yes,Church,amenity=place_of_worship,42.9599547,23.0566549,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x641c,no,16,information,3120,yes,Bus Stop/Station,highway=bus_stop,42.8542113,25.3382707,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x641d,no,18,information,17,yes,,,42.1828008,24.7408462,Unclassified: verify against Garmin TYP legend before changing the icon.
0x641e,no,18,information,55,yes,,,42.3201728,24.3003416,Unclassified: verify against Garmin TYP legend before changing the icon.
0x641f,no,18,information,1,yes,,,43.7468505,23.7692428,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6500,yes,16,information,31214,yes,Reservoir,,42.0310307,24.7559094,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6501,no,16,information,2412,yes,Restaurant,amenity=restaurant,43.3456135,28.0715060,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6502,yes,16,information,1864,yes,River Passage,,42.7929711,25.2992177,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6503,yes,16,information,760,yes,Crossroad,,43.4149003,28.4942007,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6506,no,16,information,424,yes,Museum,tourism=museum,42.1463013,24.7487855,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x650b,yes,16,information,8767,yes,Winter Marking,,42.0000887,23.3820820,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6511,no,16,information,50308,yes,Spring,natural=spring,42.8732872,23.3371925,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6600,yes,16,information,66206,yes,Triangulation,,41.2312603,22.6785922,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6601,yes,16,information,165,yes,Natural Phenomenon,,42.9589677,25.2119064,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6602,no,16,information,891,yes,Viewpoint,tourism=viewpoint,41.7438412,23.4641790,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6603,no,16,information,26366,yes,Triangulation,man_made=survey_point,42.5520873,23.8540435,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6604,no,18,information,10,yes,,,42.2186995,27.7872348,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6608,no,16,information,2644,yes,Hotel,tourism=hotel,42.8794885,27.8957462,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6609,no,16,information,372,yes,Hut,tourism=alpine_hut,43.2779145,27.1159101,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x660a,no,16,information,275,yes,Refuge,amenity=shelter;shelter_type=basic_hut,42.8157377,23.8160634,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x660b,yes,16,information,2612,yes,Mark,,43.9378452,22.4072385,Unclassified: verify against Garmin TYP legend before changing the icon.
0x660c,no,18,information,94,yes,,natural=saddle,43.6241341,22.4983478,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x660d,no,18,information,8,yes,,,42.6904893,23.4124017,Unclassified: verify against Garmin TYP legend before changing the icon.
0x660e,no,18,information,8,yes,,,43.4520006,24.5126653,Unclassified: verify against Garmin TYP legend before changing the icon.
0x660f,no,18,information,44,yes,,,42.6426816,26.3592696,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6610,no,18,information,15,yes,Meadow,,42.8212094,26.1542845,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6613,no,16,information,1746,yes,Waterfall,waterway=waterfall,42.7435327,24.6398234,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6614,yes,16,information,15289,yes,Rock,,42.7437901,25.2693915,Unclassified: verify against Garmin TYP legend before changing the icon.
0x6615,no,16,information,942,yes,Cave,natural=cave_entrance,41.8003178,23.3853436,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6616,no,16,information,15540,no,,natural=peak,42.8516150,25.7782173,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6617,no,16,information,112,yes,Peak,natural=peak,41.7893529,22.9647946,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6618,no,16,information,10176,yes,Tree,natural=tree,42.7752686,23.9033318,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x6619,no,16,information,195,yes,Prehistoric site,historic=archaeological_site,42.5703692,25.3767228,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x661a,no,16,information,384,yes,Antiquity site,historic=archaeological_site,41.7153454,26.0307527,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x661b,no,16,information,319,yes,Medieval site,historic=archaeological_site,42.0922279,24.2505813,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x661c,yes,16,information,1169,yes,,,41.8346500,26.4578676,Unclassified: verify against Garmin TYP legend before changing the icon.
0x661d,yes,16,information,1412,yes,,,41.1914778,24.0922236,Unclassified: verify against Garmin TYP legend before changing the icon.
0x661e,no,16,information,979,yes,,amenity=shelter,41.4122772,24.8197031,"Custom style opt-in; for recognized OSM types, keep native OsmAnd icons."
0x10000,no,18,information,2,no,,,43.1772995,27.7539325,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10018,no,18,information,2,no,,,43.1856465,27.9490042,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10100,no,18,information,12,no,,,42.4783373,27.4493837,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10118,no,18,information,1,no,,,43.1870842,27.6683164,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1011e,no,18,information,1,no,,,42.5841022,27.6902461,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10204,no,18,information,2,no,,,42.6573801,27.7476025,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10205,no,18,information,1,no,,,42.4590254,27.5740099,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10209,no,18,information,8,no,,,42.4733591,27.4699187,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1020a,no,18,information,9,no,,,42.4602699,27.4538684,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1020b,no,18,information,5,no,,,41.8699050,28.0232477,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1020c,no,18,information,2,no,,,43.1899381,27.8013968,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10218,no,18,information,3,no,,,42.0534110,27.9847956,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10301,yes,16,information,2006,no,,,43.4377956,28.9283538,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10401,yes,16,information,157,no,,,42.6565218,27.7297497,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10402,no,18,information,41,no,,,43.2109666,28.1308579,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10403,no,18,information,2,no,,,41.3038731,28.7996078,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1040d,yes,16,information,229,no,,,41.9180989,28.0489111,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1040e,no,18,information,4,no,,,42.8295565,27.9202938,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1041e,no,18,information,1,no,,,42.6499343,27.8320599,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10501,no,18,information,1,no,,,43.2052803,27.9446054,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10602,no,18,information,1,no,,,42.7095008,27.8530884,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1061d,no,18,information,1,no,,,43.2051730,27.9395843,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10701,no,18,information,58,no,,,43.1964397,27.8618217,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10705,no,18,information,33,no,,,43.2224250,28.1217384,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10706,no,18,information,32,no,,,43.4509492,28.8183832,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10801,no,18,information,1,no,,,42.8644896,27.9285121,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10903,no,18,information,1,no,,,42.6283908,27.6877141,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10a01,no,18,information,1,no,,,43.2014394,27.8667355,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10b01,no,18,information,1,no,,,41.8894100,28.0229688,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10b09,no,18,information,1,no,,,43.2140994,27.9750752,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10c00,no,18,information,1,no,,,43.2016969,27.9050374,Unclassified: verify against Garmin TYP legend before changing the icon.
0x10d01,no,18,information,1,no,,,43.2011819,27.8610492,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1161f,no,18,information,1,no,,,43.1953883,27.9319453,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1171e,no,18,information,1,no,,,43.2054305,27.8968406,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1181f,no,18,information,1,no,,,43.2013321,27.7061892,Unclassified: verify against Garmin TYP legend before changing the icon.
0x11901,no,18,information,1,no,,,43.8046575,28.5944295,Unclassified: verify against Garmin TYP legend before changing the icon.
0x11902,no,18,information,1,no,,,43.2049370,27.7813983,Unclassified: verify against Garmin TYP legend before changing the icon.
0x11a02,no,18,information,1,no,,,43.1968260,27.6557207,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1201f,no,18,information,1,no,,,42.5242352,27.5483894,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12102,no,18,information,1,no,,,42.4892378,27.5353217,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12502,no,18,information,1,no,,,43.2015038,27.8690314,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12a03,no,18,information,1,no,,,42.6277685,27.7115536,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12c1e,no,18,information,1,no,,,43.2013321,27.7046227,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12d01,no,18,information,1,no,,,43.1838441,27.9260015,Unclassified: verify against Garmin TYP legend before changing the icon.
0x12e1f,no,18,information,1,no,,,43.2423377,28.1846094,Unclassified: verify against Garmin TYP legend before changing the icon.
0x13001,no,18,information,1,no,,,43.1683517,28.0398345,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1321f,no,18,information,1,no,,,42.6127267,27.8121257,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1331f,no,18,information,1,no,,,43.2015467,27.8662419,Unclassified: verify against Garmin TYP legend before changing the icon.
0x13400,no,18,information,1,no,,,43.1861830,27.9269886,Unclassified: verify against Garmin TYP legend before changing the icon.
0x13a01,no,18,information,1,no,,,42.5860548,27.6915121,Unclassified: verify against Garmin TYP legend before changing the icon.
0x13c03,no,18,information,1,no,,,42.4661279,27.6418805,Unclassified: verify against Garmin TYP legend before changing the icon.
0x13d1e,no,18,information,1,no,,,43.2068896,27.9138136,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1411e,no,18,information,1,no,,,43.2047009,27.7807546,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14400,no,18,information,1,no,,,43.2175541,27.9579949,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14401,no,18,information,1,no,,,43.2052159,27.9493475,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1441c,no,18,information,1,no,,,43.1683731,28.0286121,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14501,no,18,information,1,no,,,42.6383686,27.8804684,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14602,no,18,information,1,no,,,43.1857967,27.8471661,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1461c,no,18,information,1,no,,,43.2015252,27.7032280,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1461f,no,18,information,1,no,,,43.2052588,27.8920341,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1471f,no,18,information,1,no,,,43.2224464,27.8871202,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14803,no,18,information,1,no,,,42.5953245,27.7765274,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1481f,no,18,information,1,no,,,43.2054090,27.8980207,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14a1e,no,18,information,1,no,,,43.2069111,27.9140067,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14b01,no,18,information,1,no,,,43.2014823,27.8672075,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14c01,no,18,information,1,no,,,43.2069111,27.9118609,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14d1f,no,18,information,1,no,,,42.5163817,27.6553559,Unclassified: verify against Garmin TYP legend before changing the icon.
0x14e1e,no,18,information,1,no,,,42.4459577,27.6790023,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15200,no,18,information,1,no,,,43.2048941,27.7857113,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15303,no,18,information,1,no,,,43.2014179,27.8711987,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1541d,no,18,information,1,no,,,42.4657202,27.6436615,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15501,no,18,information,1,no,,,43.2052588,27.8956819,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15800,no,18,information,1,no,,,43.2052588,27.9370308,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15a00,no,18,information,1,no,,,43.2053447,27.8867555,Unclassified: verify against Garmin TYP legend before changing the icon.
0x15e01,no,18,information,1,no,,,42.6091433,27.6586604,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16103,no,18,information,1,no,,,43.1455421,28.0770850,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16201,no,18,information,1,no,,,43.2000232,27.9100585,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16701,no,18,information,1,no,,,43.1955171,27.9348421,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1681c,no,18,information,1,no,,,42.6561785,27.8976774,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1681d,no,18,information,1,no,,,43.2166100,28.0465937,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16a00,no,18,information,1,no,,,43.2054305,27.8999090,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16b1c,no,18,information,1,no,,,42.6562428,27.9021621,Unclassified: verify against Garmin TYP legend before changing the icon.
0x16e1f,no,18,information,1,no,,,42.6637101,27.7445555,Unclassified: verify against Garmin TYP legend before changing the icon.
0x17000,no,18,information,1,no,,,42.5416589,27.6806760,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1711d,no,18,information,1,no,,,43.2069111,27.9155731,Unclassified: verify against Garmin TYP legend before changing the icon.
0x17303,no,18,information,1,no,,,42.5860977,27.6886582,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1731e,no,18,information,1,no,,,43.1925559,27.8419733,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1751f,no,18,information,1,no,,,43.2048941,27.7850676,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1771e,no,18,information,1,no,,,42.4598193,27.7104378,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1791e,no,18,information,1,no,,,43.2051516,27.8927636,Unclassified: verify against Garmin TYP legend before changing the icon.
0x17d1e,no,18,information,1,no,,,43.2051086,27.9474807,Unclassified: verify against Garmin TYP legend before changing the icon.
0x17e03,no,18,information,1,no,,,43.1967616,27.6618361,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18003,no,18,information,1,no,,,43.1717634,27.9500127,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1811e,no,18,information,1,no,,,42.5413799,27.6878858,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18302,no,18,information,1,no,,,43.2048941,27.7903032,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1861d,no,18,information,1,no,,,43.2015252,27.8606415,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1861f,no,18,information,1,no,,,43.2055807,27.8994370,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18901,no,18,information,1,no,,,42.6384759,27.8675079,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18a1f,no,18,information,2,no,,,43.2052374,27.8961754,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18c1e,no,18,information,1,no,,,43.2053876,27.8944159,Unclassified: verify against Garmin TYP legend before changing the icon.
0x18d01,no,18,information,1,no,,,42.6413083,27.7646613,Unclassified: verify against Garmin TYP legend before changing the icon.
0x19001,no,18,information,1,no,,,42.6142931,27.7507782,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1921f,no,18,information,1,no,,,43.1928349,27.8456640,Unclassified: verify against Garmin TYP legend before changing the icon.
0x19a00,no,18,information,1,no,,,43.0997944,27.9608488,Unclassified: verify against Garmin TYP legend before changing the icon.
0x19d03,no,18,information,1,no,,,42.8070259,27.9287481,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a11f,no,18,information,1,no,,,42.6562643,27.9072046,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a401,no,18,information,1,no,,,43.1839085,27.9244995,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a501,no,18,information,1,no,,,42.6584101,27.8624225,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a51c,no,18,information,1,no,,,43.2050872,27.9406786,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a800,no,18,information,1,no,,,42.5856042,27.6471162,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a81c,no,18,information,1,no,,,43.2015252,27.7040648,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a91c,no,18,information,1,no,,,43.2051516,27.9386616,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1a91f,no,18,information,1,no,,,43.1954098,27.9332972,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ab1f,no,18,information,1,no,,,42.5952172,27.7136993,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1b101,no,18,information,1,no,,,43.1928992,27.8481531,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1b31f,no,18,information,1,no,,,43.2052374,27.9455066,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1b402,no,18,information,2,no,,,42.5443196,27.5562000,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1b41c,no,18,information,2,no,,,43.1952381,27.7601337,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1b703,no,18,information,1,no,,,42.7092648,27.8581309,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ba03,no,18,information,1,no,,,43.2014394,27.8686452,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1be1c,no,18,information,1,no,,,43.2013321,27.7118969,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1c11e,no,18,information,1,no,,,43.1928992,27.8475738,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1c31d,no,18,information,1,no,,,43.1954956,27.9373097,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1c500,no,18,information,1,no,,,43.2015681,27.8681087,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1c71f,no,18,information,1,no,,,43.2048726,27.7903676,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1c81e,no,18,information,1,no,,,43.1928992,27.8485823,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1cb1f,no,18,information,1,no,,,43.2015681,27.8663921,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ce02,no,18,information,1,no,,,43.2049799,27.7835441,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1d501,no,18,information,1,no,,,42.4691319,27.6782942,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1d51e,no,18,information,1,no,,,43.2054305,27.8993511,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1d61f,no,18,information,1,no,,,43.2015681,27.8704262,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1d71c,no,18,information,1,no,,,43.2011819,27.8677869,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1d800,no,18,information,1,no,,,43.2052159,27.8855324,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1da01,no,18,information,1,no,,,42.5940800,27.8528523,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1da1e,no,18,information,1,no,,,42.4458933,27.5304723,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1db01,no,18,information,1,no,,,43.1839299,27.9252076,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1db1e,no,18,information,1,no,,,43.2012463,27.8598905,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1db1f,no,18,information,1,no,,,43.1928563,27.8472519,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1dc01,no,18,information,1,no,,,43.1860757,27.8722286,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1de1f,no,18,information,1,no,,,43.2052588,27.9385757,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1e101,no,18,information,1,no,,,43.1975555,27.8627014,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1e21f,no,18,information,2,no,,,43.2048941,27.7844238,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ea00,no,18,information,1,no,,,43.1715059,27.9508066,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ec1d,no,18,information,1,no,,,43.2013321,27.7051377,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1f401,no,18,information,1,no,,,43.1708193,28.0719352,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1f501,no,18,information,1,no,,,42.5145793,27.5918198,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1fb01,no,18,information,1,no,,,43.2013750,27.7114248,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ff00,no,18,information,1,no,,,43.2054734,27.8981280,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ff11,no,18,information,1,no,,,42.4699044,27.4409509,Unclassified: verify against Garmin TYP legend before changing the icon.
0x1ff18,no,18,information,1,no,,,43.1953454,27.9564929,Unclassified: verify against Garmin TYP legend before changing the icon.
1 code show_in_custom_style minzoom osmand_builtin_icon count garmin_icon_extracted legend_en reviewed_osm_tags example_lat example_lon note
2 0x200 no 18 information 2 yes Capital City place=city;capital=yes 41.0612941 28.8116670 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
3 0x800 no 18 information 51 yes Large City place=city 43.9025259 22.2788572 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
4 0x900 no 16 information 283 yes Town place=town 42.0570374 24.5459247 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
5 0xd00 yes 16 information 6610 no 41.6287208 23.7694144 Unclassified: verify against Garmin TYP legend before changing the icon.
6 0xe00 yes 16 information 114 no 43.9952660 22.8717756 Unclassified: verify against Garmin TYP legend before changing the icon.
7 0x1100 yes 16 information 8430 no 42.5975990 22.5972247 Unclassified: verify against Garmin TYP legend before changing the icon.
8 0x2800 no 16 information 54902 no place=locality 42.6277471 24.3122506 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
9 0x2a07 yes 16 information 227 no 43.8551474 25.9693837 Unclassified: verify against Garmin TYP legend before changing the icon.
10 0x2a0e yes 16 information 525 yes 42.0046806 24.8740768 Unclassified: verify against Garmin TYP legend before changing the icon.
11 0x2b00 no 16 information 1558 no tourism=hotel 42.6465440 27.6449919 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
12 0x2c01 no 18 information 20 yes 42.0264173 23.9946342 Unclassified: verify against Garmin TYP legend before changing the icon.
13 0x2c02 yes 16 information 538 yes 42.3479176 25.0754786 Unclassified: verify against Garmin TYP legend before changing the icon.
14 0x2c03 yes 16 information 474 yes 43.2219315 25.7480693 Unclassified: verify against Garmin TYP legend before changing the icon.
15 0x2c05 no 16 information 2481 yes School amenity=school 41.7214394 24.6845198 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
16 0x2c06 no 18 information 57 yes 43.2240987 27.9363871 Unclassified: verify against Garmin TYP legend before changing the icon.
17 0x2c07 no 18 information 20 yes 43.1368518 24.7227359 Unclassified: verify against Garmin TYP legend before changing the icon.
18 0x2c08 yes 16 information 1328 yes 41.9112968 24.9703360 Unclassified: verify against Garmin TYP legend before changing the icon.
19 0x2c0b no 16 information 1606 yes Church amenity=place_of_worship 43.0217957 24.8099613 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
20 0x2d01 no 18 information 68 no 42.8797030 25.3179932 Unclassified: verify against Garmin TYP legend before changing the icon.
21 0x2d02 yes 16 information 434 no 42.1507859 24.7315550 Unclassified: verify against Garmin TYP legend before changing the icon.
22 0x2d03 no 18 information 57 no 42.6922703 23.3241892 Unclassified: verify against Garmin TYP legend before changing the icon.
23 0x2d09 no 16 information 337 yes leisure=swimming_pool 41.8625021 23.5053134 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
24 0x2e02 yes 16 information 477 no 41.6551137 25.5503798 Unclassified: verify against Garmin TYP legend before changing the icon.
25 0x2e03 yes 16 information 502 no 43.2763910 27.9675651 Unclassified: verify against Garmin TYP legend before changing the icon.
26 0x2e04 no 18 information 66 no 42.5185919 27.4564004 Unclassified: verify against Garmin TYP legend before changing the icon.
27 0x2e05 no 16 information 487 yes Pharmacy amenity=pharmacy 42.7442837 25.3431416 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
28 0x2e06 yes 16 information 348 no 43.4717417 23.9467192 Unclassified: verify against Garmin TYP legend before changing the icon.
29 0x2e07 no 16 information 105 yes Clothes shop shop=clothes 43.0698609 25.6080151 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
30 0x2e08 no 18 information 13 no 42.7295208 23.2671332 Unclassified: verify against Garmin TYP legend before changing the icon.
31 0x2e09 no 18 information 8 no 43.2294202 27.8701901 Unclassified: verify against Garmin TYP legend before changing the icon.
32 0x2e0a yes 16 information 159 no 43.8517356 25.9867859 Unclassified: verify against Garmin TYP legend before changing the icon.
33 0x2e0b no 18 information 52 no 42.1881008 24.3556809 Unclassified: verify against Garmin TYP legend before changing the icon.
34 0x2f00 yes 16 information 1269 yes 42.9236698 24.2466116 Unclassified: verify against Garmin TYP legend before changing the icon.
35 0x2f01 yes 16 information 778 no 41.5430832 23.2712317 Unclassified: verify against Garmin TYP legend before changing the icon.
36 0x2f03 yes 16 information 106 no 41.3775158 25.0830102 Unclassified: verify against Garmin TYP legend before changing the icon.
37 0x2f05 no 16 information 486 no amenity=post_office 42.0306015 23.8108063 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
38 0x2f06 yes 16 information 320 no 42.3073840 23.8596869 Unclassified: verify against Garmin TYP legend before changing the icon.
39 0x2f08 yes 16 information 123 yes 42.6397204 23.3731771 Unclassified: verify against Garmin TYP legend before changing the icon.
40 0x2f0a no 18 information 4 yes Synagogue amenity=place_of_worship;religion=jewish 41.5711713 23.7286234 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
41 0x2f0b yes 16 information 1499 no 43.7308860 23.9443588 Unclassified: verify against Garmin TYP legend before changing the icon.
42 0x2f0c no 16 information 320 yes Mosque amenity=place_of_worship;religion=muslim 44.0549612 26.7991304 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
43 0x2f0e no 18 information 4 yes Car Wash amenity=car_wash 42.2939301 22.7035904 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
44 0x3001 yes 16 information 170 yes 43.3623934 25.1447439 Unclassified: verify against Garmin TYP legend before changing the icon.
45 0x3002 yes 16 information 564 no 42.5638032 27.6036644 Unclassified: verify against Garmin TYP legend before changing the icon.
46 0x3003 yes 16 information 841 no 43.2501698 27.7748966 Unclassified: verify against Garmin TYP legend before changing the icon.
47 0x3006 no 18 information 85 yes 43.7391043 28.5608482 Unclassified: verify against Garmin TYP legend before changing the icon.
48 0x3007 yes 16 information 132 no 43.2023406 25.7318473 Unclassified: verify against Garmin TYP legend before changing the icon.
49 0x3008 no 18 information 37 yes Fire Station amenity=fire_station 42.5666571 27.6193285 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
50 0x4700 no 16 information 101 yes Port industrial=port 41.6431189 25.2845192 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
51 0x4e00 no 18 information 14 no 41.9877291 24.0870094 Unclassified: verify against Garmin TYP legend before changing the icon.
52 0x6400 no 16 information 465 yes Quarry landuse=quarry 40.8776808 23.9436078 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
53 0x6401 no 16 information 1679 yes Bridge man_made=bridge 42.6645684 22.9691291 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
54 0x6402 no 16 information 6186 yes Building building=yes 42.5507569 23.2217932 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
55 0x6403 yes 16 information 1729 yes Graveyard/Tombstone 43.0418801 23.5914874 Unclassified: verify against Garmin TYP legend before changing the icon.
56 0x6404 no 16 information 1507 yes Church amenity=place_of_worship 42.1896243 27.0861053 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
57 0x6405 yes 16 information 260 yes Hunting Lodge 42.7514720 27.2207522 Unclassified: verify against Garmin TYP legend before changing the icon.
58 0x6406 no 16 information 854 yes Barrier/Gate barrier=gate 41.5502286 24.7455668 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
59 0x6407 no 16 information 2861 yes Picnic Site tourism=picnic_site 41.9156528 25.3233576 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
60 0x6408 no 18 information 12 yes Mountain Rescue emergency=mountain_rescue 42.6026416 23.2414269 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
61 0x6409 no 16 information 1235 yes Monument historic=monument 43.1282043 23.6027098 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
62 0x640a yes 16 information 2095 yes Danger 43.1507993 25.3284001 Unclassified: verify against Garmin TYP legend before changing the icon.
63 0x640b no 16 information 1128 yes Chapel amenity=place_of_worship 41.9598985 24.3688774 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
64 0x640c no 16 information 1353 yes Mine Shaft man_made=mine_shaft 43.0497336 22.9328442 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
65 0x640d yes 16 information 137 yes Lift 42.6056242 23.2995987 Unclassified: verify against Garmin TYP legend before changing the icon.
66 0x640e no 16 information 977 yes Bus Stop/Station highway=bus_stop 43.3513427 25.1430917 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
67 0x640f yes 16 information 2766 yes Graveyard/Tombstone 42.0345068 22.4919534 Unclassified: verify against Garmin TYP legend before changing the icon.
68 0x6410 no 18 information 98 yes 43.6105728 23.6852574 Unclassified: verify against Garmin TYP legend before changing the icon.
69 0x6411 no 16 information 875 yes Tower man_made=tower 41.7411375 24.8182654 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
70 0x6413 no 18 information 76 yes Tunnel 42.6872063 23.3418703 Unclassified: verify against Garmin TYP legend before changing the icon.
71 0x6414 no 16 information 32922 yes Drinking Water amenity=drinking_water 43.1117034 23.7205982 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
72 0x6415 no 16 information 264 yes Camp Site tourism=camp_site 41.7506647 25.1023221 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
73 0x6416 no 16 information 2886 yes Ruins historic=ruins 41.5940452 24.3094182 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
74 0x6417 no 16 information 8868 yes Well man_made=water_well 42.2628808 24.2223430 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
75 0x6418 yes 16 information 305 yes 42.7693677 26.3003898 Unclassified: verify against Garmin TYP legend before changing the icon.
76 0x6419 yes 16 information 113 yes 42.5478601 26.7053819 Unclassified: verify against Garmin TYP legend before changing the icon.
77 0x641a no 18 information 62 yes Church amenity=place_of_worship 42.9599547 23.0566549 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
78 0x641c no 16 information 3120 yes Bus Stop/Station highway=bus_stop 42.8542113 25.3382707 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
79 0x641d no 18 information 17 yes 42.1828008 24.7408462 Unclassified: verify against Garmin TYP legend before changing the icon.
80 0x641e no 18 information 55 yes 42.3201728 24.3003416 Unclassified: verify against Garmin TYP legend before changing the icon.
81 0x641f no 18 information 1 yes 43.7468505 23.7692428 Unclassified: verify against Garmin TYP legend before changing the icon.
82 0x6500 yes 16 information 31214 yes Reservoir 42.0310307 24.7559094 Unclassified: verify against Garmin TYP legend before changing the icon.
83 0x6501 no 16 information 2412 yes Restaurant amenity=restaurant 43.3456135 28.0715060 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
84 0x6502 yes 16 information 1864 yes River Passage 42.7929711 25.2992177 Unclassified: verify against Garmin TYP legend before changing the icon.
85 0x6503 yes 16 information 760 yes Crossroad 43.4149003 28.4942007 Unclassified: verify against Garmin TYP legend before changing the icon.
86 0x6506 no 16 information 424 yes Museum tourism=museum 42.1463013 24.7487855 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
87 0x650b yes 16 information 8767 yes Winter Marking 42.0000887 23.3820820 Unclassified: verify against Garmin TYP legend before changing the icon.
88 0x6511 no 16 information 50308 yes Spring natural=spring 42.8732872 23.3371925 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
89 0x6600 yes 16 information 66206 yes Triangulation 41.2312603 22.6785922 Unclassified: verify against Garmin TYP legend before changing the icon.
90 0x6601 yes 16 information 165 yes Natural Phenomenon 42.9589677 25.2119064 Unclassified: verify against Garmin TYP legend before changing the icon.
91 0x6602 no 16 information 891 yes Viewpoint tourism=viewpoint 41.7438412 23.4641790 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
92 0x6603 no 16 information 26366 yes Triangulation man_made=survey_point 42.5520873 23.8540435 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
93 0x6604 no 18 information 10 yes 42.2186995 27.7872348 Unclassified: verify against Garmin TYP legend before changing the icon.
94 0x6608 no 16 information 2644 yes Hotel tourism=hotel 42.8794885 27.8957462 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
95 0x6609 no 16 information 372 yes Hut tourism=alpine_hut 43.2779145 27.1159101 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
96 0x660a no 16 information 275 yes Refuge amenity=shelter;shelter_type=basic_hut 42.8157377 23.8160634 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
97 0x660b yes 16 information 2612 yes Mark 43.9378452 22.4072385 Unclassified: verify against Garmin TYP legend before changing the icon.
98 0x660c no 18 information 94 yes natural=saddle 43.6241341 22.4983478 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
99 0x660d no 18 information 8 yes 42.6904893 23.4124017 Unclassified: verify against Garmin TYP legend before changing the icon.
100 0x660e no 18 information 8 yes 43.4520006 24.5126653 Unclassified: verify against Garmin TYP legend before changing the icon.
101 0x660f no 18 information 44 yes 42.6426816 26.3592696 Unclassified: verify against Garmin TYP legend before changing the icon.
102 0x6610 no 18 information 15 yes Meadow 42.8212094 26.1542845 Unclassified: verify against Garmin TYP legend before changing the icon.
103 0x6613 no 16 information 1746 yes Waterfall waterway=waterfall 42.7435327 24.6398234 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
104 0x6614 yes 16 information 15289 yes Rock 42.7437901 25.2693915 Unclassified: verify against Garmin TYP legend before changing the icon.
105 0x6615 no 16 information 942 yes Cave natural=cave_entrance 41.8003178 23.3853436 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
106 0x6616 no 16 information 15540 no natural=peak 42.8516150 25.7782173 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
107 0x6617 no 16 information 112 yes Peak natural=peak 41.7893529 22.9647946 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
108 0x6618 no 16 information 10176 yes Tree natural=tree 42.7752686 23.9033318 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
109 0x6619 no 16 information 195 yes Prehistoric site historic=archaeological_site 42.5703692 25.3767228 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
110 0x661a no 16 information 384 yes Antiquity site historic=archaeological_site 41.7153454 26.0307527 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
111 0x661b no 16 information 319 yes Medieval site historic=archaeological_site 42.0922279 24.2505813 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
112 0x661c yes 16 information 1169 yes 41.8346500 26.4578676 Unclassified: verify against Garmin TYP legend before changing the icon.
113 0x661d yes 16 information 1412 yes 41.1914778 24.0922236 Unclassified: verify against Garmin TYP legend before changing the icon.
114 0x661e no 16 information 979 yes amenity=shelter 41.4122772 24.8197031 Custom style opt-in; for recognized OSM types, keep native OsmAnd icons.
115 0x10000 no 18 information 2 no 43.1772995 27.7539325 Unclassified: verify against Garmin TYP legend before changing the icon.
116 0x10018 no 18 information 2 no 43.1856465 27.9490042 Unclassified: verify against Garmin TYP legend before changing the icon.
117 0x10100 no 18 information 12 no 42.4783373 27.4493837 Unclassified: verify against Garmin TYP legend before changing the icon.
118 0x10118 no 18 information 1 no 43.1870842 27.6683164 Unclassified: verify against Garmin TYP legend before changing the icon.
119 0x1011e no 18 information 1 no 42.5841022 27.6902461 Unclassified: verify against Garmin TYP legend before changing the icon.
120 0x10204 no 18 information 2 no 42.6573801 27.7476025 Unclassified: verify against Garmin TYP legend before changing the icon.
121 0x10205 no 18 information 1 no 42.4590254 27.5740099 Unclassified: verify against Garmin TYP legend before changing the icon.
122 0x10209 no 18 information 8 no 42.4733591 27.4699187 Unclassified: verify against Garmin TYP legend before changing the icon.
123 0x1020a no 18 information 9 no 42.4602699 27.4538684 Unclassified: verify against Garmin TYP legend before changing the icon.
124 0x1020b no 18 information 5 no 41.8699050 28.0232477 Unclassified: verify against Garmin TYP legend before changing the icon.
125 0x1020c no 18 information 2 no 43.1899381 27.8013968 Unclassified: verify against Garmin TYP legend before changing the icon.
126 0x10218 no 18 information 3 no 42.0534110 27.9847956 Unclassified: verify against Garmin TYP legend before changing the icon.
127 0x10301 yes 16 information 2006 no 43.4377956 28.9283538 Unclassified: verify against Garmin TYP legend before changing the icon.
128 0x10401 yes 16 information 157 no 42.6565218 27.7297497 Unclassified: verify against Garmin TYP legend before changing the icon.
129 0x10402 no 18 information 41 no 43.2109666 28.1308579 Unclassified: verify against Garmin TYP legend before changing the icon.
130 0x10403 no 18 information 2 no 41.3038731 28.7996078 Unclassified: verify against Garmin TYP legend before changing the icon.
131 0x1040d yes 16 information 229 no 41.9180989 28.0489111 Unclassified: verify against Garmin TYP legend before changing the icon.
132 0x1040e no 18 information 4 no 42.8295565 27.9202938 Unclassified: verify against Garmin TYP legend before changing the icon.
133 0x1041e no 18 information 1 no 42.6499343 27.8320599 Unclassified: verify against Garmin TYP legend before changing the icon.
134 0x10501 no 18 information 1 no 43.2052803 27.9446054 Unclassified: verify against Garmin TYP legend before changing the icon.
135 0x10602 no 18 information 1 no 42.7095008 27.8530884 Unclassified: verify against Garmin TYP legend before changing the icon.
136 0x1061d no 18 information 1 no 43.2051730 27.9395843 Unclassified: verify against Garmin TYP legend before changing the icon.
137 0x10701 no 18 information 58 no 43.1964397 27.8618217 Unclassified: verify against Garmin TYP legend before changing the icon.
138 0x10705 no 18 information 33 no 43.2224250 28.1217384 Unclassified: verify against Garmin TYP legend before changing the icon.
139 0x10706 no 18 information 32 no 43.4509492 28.8183832 Unclassified: verify against Garmin TYP legend before changing the icon.
140 0x10801 no 18 information 1 no 42.8644896 27.9285121 Unclassified: verify against Garmin TYP legend before changing the icon.
141 0x10903 no 18 information 1 no 42.6283908 27.6877141 Unclassified: verify against Garmin TYP legend before changing the icon.
142 0x10a01 no 18 information 1 no 43.2014394 27.8667355 Unclassified: verify against Garmin TYP legend before changing the icon.
143 0x10b01 no 18 information 1 no 41.8894100 28.0229688 Unclassified: verify against Garmin TYP legend before changing the icon.
144 0x10b09 no 18 information 1 no 43.2140994 27.9750752 Unclassified: verify against Garmin TYP legend before changing the icon.
145 0x10c00 no 18 information 1 no 43.2016969 27.9050374 Unclassified: verify against Garmin TYP legend before changing the icon.
146 0x10d01 no 18 information 1 no 43.2011819 27.8610492 Unclassified: verify against Garmin TYP legend before changing the icon.
147 0x1161f no 18 information 1 no 43.1953883 27.9319453 Unclassified: verify against Garmin TYP legend before changing the icon.
148 0x1171e no 18 information 1 no 43.2054305 27.8968406 Unclassified: verify against Garmin TYP legend before changing the icon.
149 0x1181f no 18 information 1 no 43.2013321 27.7061892 Unclassified: verify against Garmin TYP legend before changing the icon.
150 0x11901 no 18 information 1 no 43.8046575 28.5944295 Unclassified: verify against Garmin TYP legend before changing the icon.
151 0x11902 no 18 information 1 no 43.2049370 27.7813983 Unclassified: verify against Garmin TYP legend before changing the icon.
152 0x11a02 no 18 information 1 no 43.1968260 27.6557207 Unclassified: verify against Garmin TYP legend before changing the icon.
153 0x1201f no 18 information 1 no 42.5242352 27.5483894 Unclassified: verify against Garmin TYP legend before changing the icon.
154 0x12102 no 18 information 1 no 42.4892378 27.5353217 Unclassified: verify against Garmin TYP legend before changing the icon.
155 0x12502 no 18 information 1 no 43.2015038 27.8690314 Unclassified: verify against Garmin TYP legend before changing the icon.
156 0x12a03 no 18 information 1 no 42.6277685 27.7115536 Unclassified: verify against Garmin TYP legend before changing the icon.
157 0x12c1e no 18 information 1 no 43.2013321 27.7046227 Unclassified: verify against Garmin TYP legend before changing the icon.
158 0x12d01 no 18 information 1 no 43.1838441 27.9260015 Unclassified: verify against Garmin TYP legend before changing the icon.
159 0x12e1f no 18 information 1 no 43.2423377 28.1846094 Unclassified: verify against Garmin TYP legend before changing the icon.
160 0x13001 no 18 information 1 no 43.1683517 28.0398345 Unclassified: verify against Garmin TYP legend before changing the icon.
161 0x1321f no 18 information 1 no 42.6127267 27.8121257 Unclassified: verify against Garmin TYP legend before changing the icon.
162 0x1331f no 18 information 1 no 43.2015467 27.8662419 Unclassified: verify against Garmin TYP legend before changing the icon.
163 0x13400 no 18 information 1 no 43.1861830 27.9269886 Unclassified: verify against Garmin TYP legend before changing the icon.
164 0x13a01 no 18 information 1 no 42.5860548 27.6915121 Unclassified: verify against Garmin TYP legend before changing the icon.
165 0x13c03 no 18 information 1 no 42.4661279 27.6418805 Unclassified: verify against Garmin TYP legend before changing the icon.
166 0x13d1e no 18 information 1 no 43.2068896 27.9138136 Unclassified: verify against Garmin TYP legend before changing the icon.
167 0x1411e no 18 information 1 no 43.2047009 27.7807546 Unclassified: verify against Garmin TYP legend before changing the icon.
168 0x14400 no 18 information 1 no 43.2175541 27.9579949 Unclassified: verify against Garmin TYP legend before changing the icon.
169 0x14401 no 18 information 1 no 43.2052159 27.9493475 Unclassified: verify against Garmin TYP legend before changing the icon.
170 0x1441c no 18 information 1 no 43.1683731 28.0286121 Unclassified: verify against Garmin TYP legend before changing the icon.
171 0x14501 no 18 information 1 no 42.6383686 27.8804684 Unclassified: verify against Garmin TYP legend before changing the icon.
172 0x14602 no 18 information 1 no 43.1857967 27.8471661 Unclassified: verify against Garmin TYP legend before changing the icon.
173 0x1461c no 18 information 1 no 43.2015252 27.7032280 Unclassified: verify against Garmin TYP legend before changing the icon.
174 0x1461f no 18 information 1 no 43.2052588 27.8920341 Unclassified: verify against Garmin TYP legend before changing the icon.
175 0x1471f no 18 information 1 no 43.2224464 27.8871202 Unclassified: verify against Garmin TYP legend before changing the icon.
176 0x14803 no 18 information 1 no 42.5953245 27.7765274 Unclassified: verify against Garmin TYP legend before changing the icon.
177 0x1481f no 18 information 1 no 43.2054090 27.8980207 Unclassified: verify against Garmin TYP legend before changing the icon.
178 0x14a1e no 18 information 1 no 43.2069111 27.9140067 Unclassified: verify against Garmin TYP legend before changing the icon.
179 0x14b01 no 18 information 1 no 43.2014823 27.8672075 Unclassified: verify against Garmin TYP legend before changing the icon.
180 0x14c01 no 18 information 1 no 43.2069111 27.9118609 Unclassified: verify against Garmin TYP legend before changing the icon.
181 0x14d1f no 18 information 1 no 42.5163817 27.6553559 Unclassified: verify against Garmin TYP legend before changing the icon.
182 0x14e1e no 18 information 1 no 42.4459577 27.6790023 Unclassified: verify against Garmin TYP legend before changing the icon.
183 0x15200 no 18 information 1 no 43.2048941 27.7857113 Unclassified: verify against Garmin TYP legend before changing the icon.
184 0x15303 no 18 information 1 no 43.2014179 27.8711987 Unclassified: verify against Garmin TYP legend before changing the icon.
185 0x1541d no 18 information 1 no 42.4657202 27.6436615 Unclassified: verify against Garmin TYP legend before changing the icon.
186 0x15501 no 18 information 1 no 43.2052588 27.8956819 Unclassified: verify against Garmin TYP legend before changing the icon.
187 0x15800 no 18 information 1 no 43.2052588 27.9370308 Unclassified: verify against Garmin TYP legend before changing the icon.
188 0x15a00 no 18 information 1 no 43.2053447 27.8867555 Unclassified: verify against Garmin TYP legend before changing the icon.
189 0x15e01 no 18 information 1 no 42.6091433 27.6586604 Unclassified: verify against Garmin TYP legend before changing the icon.
190 0x16103 no 18 information 1 no 43.1455421 28.0770850 Unclassified: verify against Garmin TYP legend before changing the icon.
191 0x16201 no 18 information 1 no 43.2000232 27.9100585 Unclassified: verify against Garmin TYP legend before changing the icon.
192 0x16701 no 18 information 1 no 43.1955171 27.9348421 Unclassified: verify against Garmin TYP legend before changing the icon.
193 0x1681c no 18 information 1 no 42.6561785 27.8976774 Unclassified: verify against Garmin TYP legend before changing the icon.
194 0x1681d no 18 information 1 no 43.2166100 28.0465937 Unclassified: verify against Garmin TYP legend before changing the icon.
195 0x16a00 no 18 information 1 no 43.2054305 27.8999090 Unclassified: verify against Garmin TYP legend before changing the icon.
196 0x16b1c no 18 information 1 no 42.6562428 27.9021621 Unclassified: verify against Garmin TYP legend before changing the icon.
197 0x16e1f no 18 information 1 no 42.6637101 27.7445555 Unclassified: verify against Garmin TYP legend before changing the icon.
198 0x17000 no 18 information 1 no 42.5416589 27.6806760 Unclassified: verify against Garmin TYP legend before changing the icon.
199 0x1711d no 18 information 1 no 43.2069111 27.9155731 Unclassified: verify against Garmin TYP legend before changing the icon.
200 0x17303 no 18 information 1 no 42.5860977 27.6886582 Unclassified: verify against Garmin TYP legend before changing the icon.
201 0x1731e no 18 information 1 no 43.1925559 27.8419733 Unclassified: verify against Garmin TYP legend before changing the icon.
202 0x1751f no 18 information 1 no 43.2048941 27.7850676 Unclassified: verify against Garmin TYP legend before changing the icon.
203 0x1771e no 18 information 1 no 42.4598193 27.7104378 Unclassified: verify against Garmin TYP legend before changing the icon.
204 0x1791e no 18 information 1 no 43.2051516 27.8927636 Unclassified: verify against Garmin TYP legend before changing the icon.
205 0x17d1e no 18 information 1 no 43.2051086 27.9474807 Unclassified: verify against Garmin TYP legend before changing the icon.
206 0x17e03 no 18 information 1 no 43.1967616 27.6618361 Unclassified: verify against Garmin TYP legend before changing the icon.
207 0x18003 no 18 information 1 no 43.1717634 27.9500127 Unclassified: verify against Garmin TYP legend before changing the icon.
208 0x1811e no 18 information 1 no 42.5413799 27.6878858 Unclassified: verify against Garmin TYP legend before changing the icon.
209 0x18302 no 18 information 1 no 43.2048941 27.7903032 Unclassified: verify against Garmin TYP legend before changing the icon.
210 0x1861d no 18 information 1 no 43.2015252 27.8606415 Unclassified: verify against Garmin TYP legend before changing the icon.
211 0x1861f no 18 information 1 no 43.2055807 27.8994370 Unclassified: verify against Garmin TYP legend before changing the icon.
212 0x18901 no 18 information 1 no 42.6384759 27.8675079 Unclassified: verify against Garmin TYP legend before changing the icon.
213 0x18a1f no 18 information 2 no 43.2052374 27.8961754 Unclassified: verify against Garmin TYP legend before changing the icon.
214 0x18c1e no 18 information 1 no 43.2053876 27.8944159 Unclassified: verify against Garmin TYP legend before changing the icon.
215 0x18d01 no 18 information 1 no 42.6413083 27.7646613 Unclassified: verify against Garmin TYP legend before changing the icon.
216 0x19001 no 18 information 1 no 42.6142931 27.7507782 Unclassified: verify against Garmin TYP legend before changing the icon.
217 0x1921f no 18 information 1 no 43.1928349 27.8456640 Unclassified: verify against Garmin TYP legend before changing the icon.
218 0x19a00 no 18 information 1 no 43.0997944 27.9608488 Unclassified: verify against Garmin TYP legend before changing the icon.
219 0x19d03 no 18 information 1 no 42.8070259 27.9287481 Unclassified: verify against Garmin TYP legend before changing the icon.
220 0x1a11f no 18 information 1 no 42.6562643 27.9072046 Unclassified: verify against Garmin TYP legend before changing the icon.
221 0x1a401 no 18 information 1 no 43.1839085 27.9244995 Unclassified: verify against Garmin TYP legend before changing the icon.
222 0x1a501 no 18 information 1 no 42.6584101 27.8624225 Unclassified: verify against Garmin TYP legend before changing the icon.
223 0x1a51c no 18 information 1 no 43.2050872 27.9406786 Unclassified: verify against Garmin TYP legend before changing the icon.
224 0x1a800 no 18 information 1 no 42.5856042 27.6471162 Unclassified: verify against Garmin TYP legend before changing the icon.
225 0x1a81c no 18 information 1 no 43.2015252 27.7040648 Unclassified: verify against Garmin TYP legend before changing the icon.
226 0x1a91c no 18 information 1 no 43.2051516 27.9386616 Unclassified: verify against Garmin TYP legend before changing the icon.
227 0x1a91f no 18 information 1 no 43.1954098 27.9332972 Unclassified: verify against Garmin TYP legend before changing the icon.
228 0x1ab1f no 18 information 1 no 42.5952172 27.7136993 Unclassified: verify against Garmin TYP legend before changing the icon.
229 0x1b101 no 18 information 1 no 43.1928992 27.8481531 Unclassified: verify against Garmin TYP legend before changing the icon.
230 0x1b31f no 18 information 1 no 43.2052374 27.9455066 Unclassified: verify against Garmin TYP legend before changing the icon.
231 0x1b402 no 18 information 2 no 42.5443196 27.5562000 Unclassified: verify against Garmin TYP legend before changing the icon.
232 0x1b41c no 18 information 2 no 43.1952381 27.7601337 Unclassified: verify against Garmin TYP legend before changing the icon.
233 0x1b703 no 18 information 1 no 42.7092648 27.8581309 Unclassified: verify against Garmin TYP legend before changing the icon.
234 0x1ba03 no 18 information 1 no 43.2014394 27.8686452 Unclassified: verify against Garmin TYP legend before changing the icon.
235 0x1be1c no 18 information 1 no 43.2013321 27.7118969 Unclassified: verify against Garmin TYP legend before changing the icon.
236 0x1c11e no 18 information 1 no 43.1928992 27.8475738 Unclassified: verify against Garmin TYP legend before changing the icon.
237 0x1c31d no 18 information 1 no 43.1954956 27.9373097 Unclassified: verify against Garmin TYP legend before changing the icon.
238 0x1c500 no 18 information 1 no 43.2015681 27.8681087 Unclassified: verify against Garmin TYP legend before changing the icon.
239 0x1c71f no 18 information 1 no 43.2048726 27.7903676 Unclassified: verify against Garmin TYP legend before changing the icon.
240 0x1c81e no 18 information 1 no 43.1928992 27.8485823 Unclassified: verify against Garmin TYP legend before changing the icon.
241 0x1cb1f no 18 information 1 no 43.2015681 27.8663921 Unclassified: verify against Garmin TYP legend before changing the icon.
242 0x1ce02 no 18 information 1 no 43.2049799 27.7835441 Unclassified: verify against Garmin TYP legend before changing the icon.
243 0x1d501 no 18 information 1 no 42.4691319 27.6782942 Unclassified: verify against Garmin TYP legend before changing the icon.
244 0x1d51e no 18 information 1 no 43.2054305 27.8993511 Unclassified: verify against Garmin TYP legend before changing the icon.
245 0x1d61f no 18 information 1 no 43.2015681 27.8704262 Unclassified: verify against Garmin TYP legend before changing the icon.
246 0x1d71c no 18 information 1 no 43.2011819 27.8677869 Unclassified: verify against Garmin TYP legend before changing the icon.
247 0x1d800 no 18 information 1 no 43.2052159 27.8855324 Unclassified: verify against Garmin TYP legend before changing the icon.
248 0x1da01 no 18 information 1 no 42.5940800 27.8528523 Unclassified: verify against Garmin TYP legend before changing the icon.
249 0x1da1e no 18 information 1 no 42.4458933 27.5304723 Unclassified: verify against Garmin TYP legend before changing the icon.
250 0x1db01 no 18 information 1 no 43.1839299 27.9252076 Unclassified: verify against Garmin TYP legend before changing the icon.
251 0x1db1e no 18 information 1 no 43.2012463 27.8598905 Unclassified: verify against Garmin TYP legend before changing the icon.
252 0x1db1f no 18 information 1 no 43.1928563 27.8472519 Unclassified: verify against Garmin TYP legend before changing the icon.
253 0x1dc01 no 18 information 1 no 43.1860757 27.8722286 Unclassified: verify against Garmin TYP legend before changing the icon.
254 0x1de1f no 18 information 1 no 43.2052588 27.9385757 Unclassified: verify against Garmin TYP legend before changing the icon.
255 0x1e101 no 18 information 1 no 43.1975555 27.8627014 Unclassified: verify against Garmin TYP legend before changing the icon.
256 0x1e21f no 18 information 2 no 43.2048941 27.7844238 Unclassified: verify against Garmin TYP legend before changing the icon.
257 0x1ea00 no 18 information 1 no 43.1715059 27.9508066 Unclassified: verify against Garmin TYP legend before changing the icon.
258 0x1ec1d no 18 information 1 no 43.2013321 27.7051377 Unclassified: verify against Garmin TYP legend before changing the icon.
259 0x1f401 no 18 information 1 no 43.1708193 28.0719352 Unclassified: verify against Garmin TYP legend before changing the icon.
260 0x1f501 no 18 information 1 no 42.5145793 27.5918198 Unclassified: verify against Garmin TYP legend before changing the icon.
261 0x1fb01 no 18 information 1 no 43.2013750 27.7114248 Unclassified: verify against Garmin TYP legend before changing the icon.
262 0x1ff00 no 18 information 1 no 43.2054734 27.8981280 Unclassified: verify against Garmin TYP legend before changing the icon.
263 0x1ff11 no 18 information 1 no 42.4699044 27.4409509 Unclassified: verify against Garmin TYP legend before changing the icon.
264 0x1ff18 no 18 information 1 no 43.1953454 27.9564929 Unclassified: verify against Garmin TYP legend before changing the icon.
@@ -0,0 +1,88 @@
garmin_hex,count,legend_en,legend_bg,verified_osm_tags,extracted_garmin_icon,example1_lat,example1_lon,example1_name,example2_lat,example2_lon,review_status,default_osmand_display
0x6600,66206,Triangulation,Кота,,yes,41.2312603,22.6785922,217,42.8680515,22.6715970,icon_legend_verified,custom_style_information
0x2800,54902,,,place=locality,no,42.6277471,24.3122506,Големия поп,43.3119893,27.8330684,not_on_legend,native_osmand
0x6511,50308,Spring,Извор,natural=spring,yes,42.8732872,23.3371925,Студена вода,42.5154161,23.1598663,icon_legend_verified,native_osmand
0x6414,32922,Drinking Water,Чешма,amenity=drinking_water,yes,43.1117034,23.7205982,затлачена,42.2771502,25.3026724,icon_legend_verified,native_osmand
0x6500,31214,Reservoir,Каптаж,,yes,42.0310307,24.7559094,Забучена,42.7306151,22.7937984,icon_legend_verified,custom_style_information
0x6603,26366,Triangulation,Кота,man_made=survey_point,yes,42.5520873,23.8540435,1079,42.5116181,23.8444304,icon_legend_verified,native_osmand
0x6616,15540,,,natural=peak,no,42.8516150,25.7782173,Симов чукар,43.4484601,23.3003926,name_supported,native_osmand
0x6614,15289,Rock,Скала,,yes,42.7437901,25.2693915,15,42.7658057,25.9388924,icon_legend_verified,custom_style_information
0x6618,10176,Tree,Дърво,natural=tree,yes,42.7752686,23.9033318,столетно дърво,43.2969904,24.6177006,icon_legend_verified,native_osmand
0x6417,8868,Well,Кладенец,man_made=water_well,yes,42.2628808,24.2223430,Юсеиновия кладенец,41.7512012,25.0972795,icon_legend_verified,native_osmand
0x650b,8767,Winter Marking,Зимна маркировка,,yes,42.0000887,23.3820820,94,42.7546048,24.7787404,icon_legend_verified,custom_style_information
0x1100,8430,,,,no,42.5975990,22.5972247,Върбица,42.8741455,25.5907202,not_on_legend,custom_style_information
0xd00,6610,,,,no,41.6287208,23.7694144,Балдево,43.4385252,26.5020704,not_on_legend,custom_style_information
0x6402,6186,Building,Сграда,building=yes,yes,42.5507569,23.2217932,Чакало,42.2648549,23.5112143,icon_legend_verified,native_osmand
0x641c,3120,Bus Stop/Station,Спирка,highway=bus_stop,yes,42.8542113,25.3382707,1-7-10-14,42.8205442,23.3609891,icon_legend_verified,native_osmand
0x6416,2886,Ruins,Руини,historic=ruins,yes,41.5940452,24.3094182,Разв.,41.9296217,24.6835971,icon_legend_verified,native_osmand
0x6407,2861,Picnic Site,Пикник,tourism=picnic_site,yes,41.9156528,25.3233576,беседка,42.6045942,23.4355974,icon_legend_verified,native_osmand
0x640f,2766,Graveyard/Tombstone,"Гробище, оброк",,yes,42.0345068,22.4919534,Гробище,41.4501715,24.6433210,icon_legend_verified,custom_style_information
0x6608,2644,Hotel,Хотел,tourism=hotel,yes,42.8794885,27.8957462,Fortuna Cape Complex,42.3725724,27.7117682,icon_legend_verified,native_osmand
0x660b,2612,Mark,Маркировка,,yes,43.9378452,22.4072385,Пир. 454,41.6514015,24.3190312,icon_legend_verified,custom_style_information
0x2c05,2481,School,Училище,amenity=school,yes,41.7214394,24.6845198,СУ Олимпийски Надежди,42.2714853,24.5394874,icon_legend_verified,native_osmand
0x6501,2412,Restaurant,Ресторант,amenity=restaurant,yes,43.3456135,28.0715060,Therma beach,42.4869204,26.4846039,icon_legend_verified,native_osmand
0x640a,2095,Danger,Опасност,,yes,43.1507993,25.3284001,Стълба,42.5652623,23.4620762,icon_legend_verified,custom_style_information
0x10301,2006,,,,no,43.4377956,28.9283538,,42.2109532,27.8938365,extended_unverified,custom_style_information
0x6502,1864,River Passage,Брод,,yes,42.7929711,25.2992177,Бент,42.1954823,23.7029600,icon_legend_verified,custom_style_information
0x6613,1746,Waterfall,Водопад,waterway=waterfall,yes,42.7435327,24.6398234,Кастрак дере горен,42.0257735,24.5287156,icon_legend_verified,native_osmand
0x6403,1729,Graveyard/Tombstone,"Гробище, оброк",,yes,43.0418801,23.5914874,Св. Мария Магдалена,41.7204952,24.8700428,icon_legend_verified,custom_style_information
0x6401,1679,Bridge,Мост,man_made=bridge,yes,42.6645684,22.9691291,Зидан мост,41.3415956,22.8474855,icon_legend_verified,native_osmand
0x2c0b,1606,Church,Църква,amenity=place_of_worship,yes,43.0217957,24.8099613,Рождество Богородично,41.6844034,25.7115483,icon_legend_verified,native_osmand
0x2b00,1558,,,tourism=hotel,no,42.6465440,27.6449919,Sotirovi Holiday,41.6332698,24.7040462,not_on_legend,native_osmand
0x6404,1507,Church,Църква,amenity=place_of_worship,yes,42.1896243,27.0861053,Св. Димитър,42.6495481,23.1854010,icon_legend_verified,native_osmand
0x2f0b,1499,,,,no,43.7308860,23.9443588,автополигон,42.2151589,24.0181303,not_on_legend,custom_style_information
0x661d,1412,,,,yes,41.1914778,24.0922236,Овчарник,42.7084708,25.3351378,not_on_legend,custom_style_information
0x640c,1353,Mine Shaft,Мина,man_made=mine_shaft,yes,43.0497336,22.9328442,(Въгл.),41.5701199,24.6346951,icon_legend_verified,native_osmand
0x2c08,1328,,,,yes,41.9112968,24.9703360,"Конна база ""Wild City""",42.6861334,23.3365059,not_on_legend,custom_style_information
0x2f00,1269,,,,yes,42.9236698,24.2466116,индустриални сгради,42.8208017,23.1913233,not_on_legend,custom_style_information
0x6409,1235,Monument,Паметник,historic=monument,yes,43.1282043,23.6027098,Перо Херцеговинеца,42.4960184,22.8770757,icon_legend_verified,native_osmand
0x661c,1169,,,,yes,41.8346500,26.4578676,Койчовата могила,43.6355710,28.5723281,not_on_legend,custom_style_information
0x640b,1128,Chapel,Параклис,amenity=place_of_worship,yes,41.9598985,24.3688774,Параклис,41.9762921,24.8116350,icon_legend_verified,native_osmand
0x661e,979,,,amenity=shelter,yes,41.4122772,24.8197031,Навес с барбекю,41.3865280,24.7667241,not_on_legend,native_osmand
0x640e,977,Bus Stop/Station,Спирка,highway=bus_stop,yes,43.3513427,25.1430917,Левски,42.3796749,22.7069807,icon_legend_verified,native_osmand
0x6615,942,Cave,Пещера,natural=cave_entrance,yes,41.8003178,23.3853436,Дупка,43.2577872,24.0077662,icon_legend_verified,native_osmand
0x6602,891,Viewpoint,Гледка,tourism=viewpoint,yes,41.7438412,23.4641790,Кьошка (Балконе)-панорама,42.8009748,27.1023059,icon_legend_verified,native_osmand
0x6411,875,Tower,Кула,man_made=tower,yes,41.7411375,24.8182654,GSM клетка,42.1343064,24.8024940,icon_legend_verified,native_osmand
0x6406,854,Barrier/Gate,Бариера,barrier=gate,yes,41.5502286,24.7455668,Военен обект!,41.2806129,25.2994323,icon_legend_verified,native_osmand
0x3003,841,,,,no,43.2501698,27.7748966,Кметство,41.8338132,24.8308182,not_on_legend,custom_style_information
0x2f01,778,,,,no,41.5430832,23.2712317,Газостанция,43.7991214,26.1920500,not_on_legend,custom_style_information
0x6503,760,Crossroad,Кръстопът,,yes,43.4149003,28.4942007,на запад Черноморски път,41.5363026,23.6495304,icon_legend_verified,custom_style_information
0x3002,564,,,,no,42.5638032,27.6036644,First Aid,42.4966407,24.7085094,not_on_legend,custom_style_information
0x2c02,538,,,,yes,42.3479176,25.0754786,Детска градина,43.5124254,26.7439628,not_on_legend,custom_style_information
0x2a0e,525,,,,yes,42.0046806,24.8740768,Pandora,42.6043367,23.0305839,not_on_legend,custom_style_information
0x2e03,502,,,,no,43.2763910,27.9675651,магазин,42.1473527,24.7843194,not_on_legend,custom_style_information
0x2e05,487,Pharmacy,Аптека,amenity=pharmacy,yes,42.7442837,25.3431416,Аптечка,42.6866698,23.3093405,icon_legend_verified,native_osmand
0x2f05,486,,,amenity=post_office,no,42.0306015,23.8108063,Поща,43.7494254,27.4069619,not_on_legend,native_osmand
0x2e02,477,,,,no,41.6551137,25.5503798,Хранителни стоки,41.6634393,24.3756366,not_on_legend,custom_style_information
0x2c03,474,,,,yes,43.2219315,25.7480693,читалище Съединение,43.7368727,26.1066914,not_on_legend,custom_style_information
0x6400,465,Quarry,Кариера,landuse=quarry,yes,40.8776808,23.9436078,(Кам.),42.0491624,26.4963627,icon_legend_verified,native_osmand
0x2d02,434,,,,no,42.1507859,24.7315550,Casa de Cuba,42.0225549,23.9974666,not_on_legend,custom_style_information
0x6506,424,Museum,Музей,tourism=museum,yes,42.1463013,24.7487855,Градска художествена галерия,42.4936581,27.4754548,icon_legend_verified,native_osmand
0x661a,384,Antiquity site,Античен обект,historic=archaeological_site,yes,41.7153454,26.0307527,Тракийска крепост Курт кале,43.2776999,27.1080351,icon_legend_verified,native_osmand
0x6609,372,Hut,Хижа,tourism=alpine_hut,yes,43.2779145,27.1159101,Хижа Мадарски конник,41.8324399,24.7721529,icon_legend_verified,native_osmand
0x2e06,348,,,,no,43.4717417,23.9467192,Trayкov Shop,42.6665640,25.4079223,not_on_legend,custom_style_information
0x2d09,337,,,leisure=swimming_pool,yes,41.8625021,23.5053134,Минерален басейн Пирин,42.2918701,23.2552886,not_on_legend,native_osmand
0x2f06,320,,,,no,42.3073840,23.8596869,Банка ДСК,43.2122111,27.9121184,not_on_legend,custom_style_information
0x2f0c,320,Mosque,Джамия,amenity=place_of_worship;religion=muslim,yes,44.0549612,26.7991304,Джамия,41.4958334,24.6339655,icon_legend_verified,native_osmand
0x661b,319,Medieval site,Средновековен обект,historic=archaeological_site,yes,42.0922279,24.2505813,"Средновековен манастир ""Св. Седмочиленици""",42.2452426,24.0083671,icon_legend_verified,native_osmand
0x6418,305,,,,yes,42.7693677,26.3003898,Ветрогенератор,42.7765560,26.3197017,not_on_legend,custom_style_information
0x900,283,Town,Град <75 000,place=town,yes,42.0570374,24.5459247,Перущица,40.8942676,26.1739397,icon_legend_verified,native_osmand
0x660a,275,Refuge,Заслон,amenity=shelter;shelter_type=basic_hut,yes,42.8157377,23.8160634,Заслон,42.7268600,26.3467383,icon_legend_verified,native_osmand
0x6415,264,Camp Site,Място за бивакуване,tourism=camp_site,yes,41.7506647,25.1023221,Бивак,43.2923126,27.1431398,icon_legend_verified,native_osmand
0x6405,260,Hunting Lodge,Ловна хижа,,yes,42.7514720,27.2207522,заслон Зайчар,41.6350079,25.5436206,icon_legend_verified,custom_style_information
0x1040d,229,,,,no,41.9180989,28.0489111,,42.8007388,27.8943729,extended_unverified,custom_style_information
0x2a07,227,,,,no,43.8551474,25.9693837,Тирол,42.7743888,26.8785238,not_on_legend,custom_style_information
0x6619,195,Prehistoric site,Праисторически обект,historic=archaeological_site,yes,42.5703692,25.3767228,Бащин камък (Слънчева врата),41.9394493,26.1900759,icon_legend_verified,native_osmand
0x3001,170,,,,yes,43.3623934,25.1447439,полиция,43.1404138,24.7057414,not_on_legend,custom_style_information
0x6601,165,Natural Phenomenon,Природен феномен,,yes,42.9589677,25.2119064,"скален феномен ""Момичките""",42.5682020,25.5528045,icon_legend_verified,custom_style_information
0x2e0a,159,,,,no,43.8517356,25.9867859,Автокъщи,43.2120609,27.9186201,not_on_legend,custom_style_information
0x10401,157,,,,no,42.6565218,27.7297497,,43.2037354,27.8479171,extended_unverified,custom_style_information
0x640d,137,Lift,Лифт,,yes,42.6056242,23.2995987,Драгалевски междинна,42.5832009,23.2924747,icon_legend_verified,custom_style_information
0x3007,132,,,,no,43.2023406,25.7318473,Помпена ст.,42.6586461,27.7180338,not_on_legend,custom_style_information
0x2f08,123,,,,yes,42.6397204,23.3731771,Акад. Александър Теодоров - Балан,42.7053809,23.3233523,not_on_legend,custom_style_information
0xe00,114,,,,no,43.9952660,22.8717756,жк. Крум Бъчваров,43.9941502,22.8833628,not_on_legend,custom_style_information
0x6419,113,,,,yes,42.5478601,26.7053819,Фотоволтаична ценрала,42.4148440,25.6047320,not_on_legend,custom_style_information
0x6617,112,Peak,Връх,natural=peak,yes,41.7893529,22.9647946,Огреяк (Кадийца) (1924),41.9179702,24.9033022,icon_legend_verified,native_osmand
0x2f03,106,,,,no,41.3775158,25.0830102,"Автосервиз ""Профиров""",43.8112664,25.9830523,not_on_legend,custom_style_information
0x2e07,105,Clothes shop,Магазин за дрехи,shop=clothes,yes,43.0698609,25.6080151,"Кооперативен пазар ""Бузлуджа""",42.1253800,24.7373700,icon_legend_verified,native_osmand
0x4700,101,Port,Пристанище,industrial=port,yes,41.6431189,25.2845192,Пристан,42.0604706,27.9666424,icon_legend_verified,native_osmand
1 garmin_hex count legend_en legend_bg verified_osm_tags extracted_garmin_icon example1_lat example1_lon example1_name example2_lat example2_lon review_status default_osmand_display
2 0x6600 66206 Triangulation Кота yes 41.2312603 22.6785922 217 42.8680515 22.6715970 icon_legend_verified custom_style_information
3 0x2800 54902 place=locality no 42.6277471 24.3122506 Големия поп 43.3119893 27.8330684 not_on_legend native_osmand
4 0x6511 50308 Spring Извор natural=spring yes 42.8732872 23.3371925 Студена вода 42.5154161 23.1598663 icon_legend_verified native_osmand
5 0x6414 32922 Drinking Water Чешма amenity=drinking_water yes 43.1117034 23.7205982 затлачена 42.2771502 25.3026724 icon_legend_verified native_osmand
6 0x6500 31214 Reservoir Каптаж yes 42.0310307 24.7559094 Забучена 42.7306151 22.7937984 icon_legend_verified custom_style_information
7 0x6603 26366 Triangulation Кота man_made=survey_point yes 42.5520873 23.8540435 1079 42.5116181 23.8444304 icon_legend_verified native_osmand
8 0x6616 15540 natural=peak no 42.8516150 25.7782173 Симов чукар 43.4484601 23.3003926 name_supported native_osmand
9 0x6614 15289 Rock Скала yes 42.7437901 25.2693915 15 42.7658057 25.9388924 icon_legend_verified custom_style_information
10 0x6618 10176 Tree Дърво natural=tree yes 42.7752686 23.9033318 столетно дърво 43.2969904 24.6177006 icon_legend_verified native_osmand
11 0x6417 8868 Well Кладенец man_made=water_well yes 42.2628808 24.2223430 Юсеиновия кладенец 41.7512012 25.0972795 icon_legend_verified native_osmand
12 0x650b 8767 Winter Marking Зимна маркировка yes 42.0000887 23.3820820 94 42.7546048 24.7787404 icon_legend_verified custom_style_information
13 0x1100 8430 no 42.5975990 22.5972247 Върбица 42.8741455 25.5907202 not_on_legend custom_style_information
14 0xd00 6610 no 41.6287208 23.7694144 Балдево 43.4385252 26.5020704 not_on_legend custom_style_information
15 0x6402 6186 Building Сграда building=yes yes 42.5507569 23.2217932 Чакало 42.2648549 23.5112143 icon_legend_verified native_osmand
16 0x641c 3120 Bus Stop/Station Спирка highway=bus_stop yes 42.8542113 25.3382707 1-7-10-14 42.8205442 23.3609891 icon_legend_verified native_osmand
17 0x6416 2886 Ruins Руини historic=ruins yes 41.5940452 24.3094182 Разв. 41.9296217 24.6835971 icon_legend_verified native_osmand
18 0x6407 2861 Picnic Site Пикник tourism=picnic_site yes 41.9156528 25.3233576 беседка 42.6045942 23.4355974 icon_legend_verified native_osmand
19 0x640f 2766 Graveyard/Tombstone Гробище, оброк yes 42.0345068 22.4919534 Гробище 41.4501715 24.6433210 icon_legend_verified custom_style_information
20 0x6608 2644 Hotel Хотел tourism=hotel yes 42.8794885 27.8957462 Fortuna Cape Complex 42.3725724 27.7117682 icon_legend_verified native_osmand
21 0x660b 2612 Mark Маркировка yes 43.9378452 22.4072385 Пир. 454 41.6514015 24.3190312 icon_legend_verified custom_style_information
22 0x2c05 2481 School Училище amenity=school yes 41.7214394 24.6845198 СУ Олимпийски Надежди 42.2714853 24.5394874 icon_legend_verified native_osmand
23 0x6501 2412 Restaurant Ресторант amenity=restaurant yes 43.3456135 28.0715060 Therma beach 42.4869204 26.4846039 icon_legend_verified native_osmand
24 0x640a 2095 Danger Опасност yes 43.1507993 25.3284001 Стълба 42.5652623 23.4620762 icon_legend_verified custom_style_information
25 0x10301 2006 no 43.4377956 28.9283538 42.2109532 27.8938365 extended_unverified custom_style_information
26 0x6502 1864 River Passage Брод yes 42.7929711 25.2992177 Бент 42.1954823 23.7029600 icon_legend_verified custom_style_information
27 0x6613 1746 Waterfall Водопад waterway=waterfall yes 42.7435327 24.6398234 Кастрак дере горен 42.0257735 24.5287156 icon_legend_verified native_osmand
28 0x6403 1729 Graveyard/Tombstone Гробище, оброк yes 43.0418801 23.5914874 Св. Мария Магдалена 41.7204952 24.8700428 icon_legend_verified custom_style_information
29 0x6401 1679 Bridge Мост man_made=bridge yes 42.6645684 22.9691291 Зидан мост 41.3415956 22.8474855 icon_legend_verified native_osmand
30 0x2c0b 1606 Church Църква amenity=place_of_worship yes 43.0217957 24.8099613 Рождество Богородично 41.6844034 25.7115483 icon_legend_verified native_osmand
31 0x2b00 1558 tourism=hotel no 42.6465440 27.6449919 Sotirovi Holiday 41.6332698 24.7040462 not_on_legend native_osmand
32 0x6404 1507 Church Църква amenity=place_of_worship yes 42.1896243 27.0861053 Св. Димитър 42.6495481 23.1854010 icon_legend_verified native_osmand
33 0x2f0b 1499 no 43.7308860 23.9443588 автополигон 42.2151589 24.0181303 not_on_legend custom_style_information
34 0x661d 1412 yes 41.1914778 24.0922236 Овчарник 42.7084708 25.3351378 not_on_legend custom_style_information
35 0x640c 1353 Mine Shaft Мина man_made=mine_shaft yes 43.0497336 22.9328442 (Въгл.) 41.5701199 24.6346951 icon_legend_verified native_osmand
36 0x2c08 1328 yes 41.9112968 24.9703360 Конна база "Wild City" 42.6861334 23.3365059 not_on_legend custom_style_information
37 0x2f00 1269 yes 42.9236698 24.2466116 индустриални сгради 42.8208017 23.1913233 not_on_legend custom_style_information
38 0x6409 1235 Monument Паметник historic=monument yes 43.1282043 23.6027098 Перо Херцеговинеца 42.4960184 22.8770757 icon_legend_verified native_osmand
39 0x661c 1169 yes 41.8346500 26.4578676 Койчовата могила 43.6355710 28.5723281 not_on_legend custom_style_information
40 0x640b 1128 Chapel Параклис amenity=place_of_worship yes 41.9598985 24.3688774 Параклис 41.9762921 24.8116350 icon_legend_verified native_osmand
41 0x661e 979 amenity=shelter yes 41.4122772 24.8197031 Навес с барбекю 41.3865280 24.7667241 not_on_legend native_osmand
42 0x640e 977 Bus Stop/Station Спирка highway=bus_stop yes 43.3513427 25.1430917 Левски 42.3796749 22.7069807 icon_legend_verified native_osmand
43 0x6615 942 Cave Пещера natural=cave_entrance yes 41.8003178 23.3853436 Дупка 43.2577872 24.0077662 icon_legend_verified native_osmand
44 0x6602 891 Viewpoint Гледка tourism=viewpoint yes 41.7438412 23.4641790 Кьошка (Балконе)-панорама 42.8009748 27.1023059 icon_legend_verified native_osmand
45 0x6411 875 Tower Кула man_made=tower yes 41.7411375 24.8182654 GSM клетка 42.1343064 24.8024940 icon_legend_verified native_osmand
46 0x6406 854 Barrier/Gate Бариера barrier=gate yes 41.5502286 24.7455668 Военен обект! 41.2806129 25.2994323 icon_legend_verified native_osmand
47 0x3003 841 no 43.2501698 27.7748966 Кметство 41.8338132 24.8308182 not_on_legend custom_style_information
48 0x2f01 778 no 41.5430832 23.2712317 Газостанция 43.7991214 26.1920500 not_on_legend custom_style_information
49 0x6503 760 Crossroad Кръстопът yes 43.4149003 28.4942007 на запад Черноморски път 41.5363026 23.6495304 icon_legend_verified custom_style_information
50 0x3002 564 no 42.5638032 27.6036644 First Aid 42.4966407 24.7085094 not_on_legend custom_style_information
51 0x2c02 538 yes 42.3479176 25.0754786 Детска градина 43.5124254 26.7439628 not_on_legend custom_style_information
52 0x2a0e 525 yes 42.0046806 24.8740768 Pandora 42.6043367 23.0305839 not_on_legend custom_style_information
53 0x2e03 502 no 43.2763910 27.9675651 магазин 42.1473527 24.7843194 not_on_legend custom_style_information
54 0x2e05 487 Pharmacy Аптека amenity=pharmacy yes 42.7442837 25.3431416 Аптечка 42.6866698 23.3093405 icon_legend_verified native_osmand
55 0x2f05 486 amenity=post_office no 42.0306015 23.8108063 Поща 43.7494254 27.4069619 not_on_legend native_osmand
56 0x2e02 477 no 41.6551137 25.5503798 Хранителни стоки 41.6634393 24.3756366 not_on_legend custom_style_information
57 0x2c03 474 yes 43.2219315 25.7480693 читалище Съединение 43.7368727 26.1066914 not_on_legend custom_style_information
58 0x6400 465 Quarry Кариера landuse=quarry yes 40.8776808 23.9436078 (Кам.) 42.0491624 26.4963627 icon_legend_verified native_osmand
59 0x2d02 434 no 42.1507859 24.7315550 Casa de Cuba 42.0225549 23.9974666 not_on_legend custom_style_information
60 0x6506 424 Museum Музей tourism=museum yes 42.1463013 24.7487855 Градска художествена галерия 42.4936581 27.4754548 icon_legend_verified native_osmand
61 0x661a 384 Antiquity site Античен обект historic=archaeological_site yes 41.7153454 26.0307527 Тракийска крепост Курт кале 43.2776999 27.1080351 icon_legend_verified native_osmand
62 0x6609 372 Hut Хижа tourism=alpine_hut yes 43.2779145 27.1159101 Хижа Мадарски конник 41.8324399 24.7721529 icon_legend_verified native_osmand
63 0x2e06 348 no 43.4717417 23.9467192 Trayкov Shop 42.6665640 25.4079223 not_on_legend custom_style_information
64 0x2d09 337 leisure=swimming_pool yes 41.8625021 23.5053134 Минерален басейн Пирин 42.2918701 23.2552886 not_on_legend native_osmand
65 0x2f06 320 no 42.3073840 23.8596869 Банка ДСК 43.2122111 27.9121184 not_on_legend custom_style_information
66 0x2f0c 320 Mosque Джамия amenity=place_of_worship;religion=muslim yes 44.0549612 26.7991304 Джамия 41.4958334 24.6339655 icon_legend_verified native_osmand
67 0x661b 319 Medieval site Средновековен обект historic=archaeological_site yes 42.0922279 24.2505813 Средновековен манастир "Св. Седмочиленици" 42.2452426 24.0083671 icon_legend_verified native_osmand
68 0x6418 305 yes 42.7693677 26.3003898 Ветрогенератор 42.7765560 26.3197017 not_on_legend custom_style_information
69 0x900 283 Town Град <75 000 place=town yes 42.0570374 24.5459247 Перущица 40.8942676 26.1739397 icon_legend_verified native_osmand
70 0x660a 275 Refuge Заслон amenity=shelter;shelter_type=basic_hut yes 42.8157377 23.8160634 Заслон 42.7268600 26.3467383 icon_legend_verified native_osmand
71 0x6415 264 Camp Site Място за бивакуване tourism=camp_site yes 41.7506647 25.1023221 Бивак 43.2923126 27.1431398 icon_legend_verified native_osmand
72 0x6405 260 Hunting Lodge Ловна хижа yes 42.7514720 27.2207522 заслон Зайчар 41.6350079 25.5436206 icon_legend_verified custom_style_information
73 0x1040d 229 no 41.9180989 28.0489111 42.8007388 27.8943729 extended_unverified custom_style_information
74 0x2a07 227 no 43.8551474 25.9693837 Тирол 42.7743888 26.8785238 not_on_legend custom_style_information
75 0x6619 195 Prehistoric site Праисторически обект historic=archaeological_site yes 42.5703692 25.3767228 Бащин камък (Слънчева врата) 41.9394493 26.1900759 icon_legend_verified native_osmand
76 0x3001 170 yes 43.3623934 25.1447439 полиция 43.1404138 24.7057414 not_on_legend custom_style_information
77 0x6601 165 Natural Phenomenon Природен феномен yes 42.9589677 25.2119064 скален феномен "Момичките" 42.5682020 25.5528045 icon_legend_verified custom_style_information
78 0x2e0a 159 no 43.8517356 25.9867859 Автокъщи 43.2120609 27.9186201 not_on_legend custom_style_information
79 0x10401 157 no 42.6565218 27.7297497 43.2037354 27.8479171 extended_unverified custom_style_information
80 0x640d 137 Lift Лифт yes 42.6056242 23.2995987 Драгалевски междинна 42.5832009 23.2924747 icon_legend_verified custom_style_information
81 0x3007 132 no 43.2023406 25.7318473 Помпена ст. 42.6586461 27.7180338 not_on_legend custom_style_information
82 0x2f08 123 yes 42.6397204 23.3731771 Акад. Александър Теодоров - Балан 42.7053809 23.3233523 not_on_legend custom_style_information
83 0xe00 114 no 43.9952660 22.8717756 жк. Крум Бъчваров 43.9941502 22.8833628 not_on_legend custom_style_information
84 0x6419 113 yes 42.5478601 26.7053819 Фотоволтаична ценрала 42.4148440 25.6047320 not_on_legend custom_style_information
85 0x6617 112 Peak Връх natural=peak yes 41.7893529 22.9647946 Огреяк (Кадийца) (1924) 41.9179702 24.9033022 icon_legend_verified native_osmand
86 0x2f03 106 no 41.3775158 25.0830102 Автосервиз "Профиров" 43.8112664 25.9830523 not_on_legend custom_style_information
87 0x2e07 105 Clothes shop Магазин за дрехи shop=clothes yes 43.0698609 25.6080151 Кооперативен пазар "Бузлуджа" 42.1253800 24.7373700 icon_legend_verified native_osmand
88 0x4700 101 Port Пристанище industrial=port yes 41.6431189 25.2845192 Пристан 42.0604706 27.9666424 icon_legend_verified native_osmand
Binary file not shown.
File diff suppressed because it is too large Load Diff
+12
View File
@@ -0,0 +1,12 @@
{
"source_pois": 3986,
"expected_after_drops": 3986,
"declared_drops": 0,
"osm_pois": 3986,
"missing": 0,
"extra": 0,
"rule_tag_violations": {},
"examples": [],
"status": "PASS",
"limitation": "Same IMG decoder is used for manifest and OSM: this validates export fidelity, not ground truth or OBF persistence."
}
+303
View File
@@ -0,0 +1,303 @@
#!/usr/bin/env python3
"""One-command BGMountains IMG -> reviewed OSM -> custom indexed OsmAnd OBF.
Only Python 3 stdlib needed for orchestration; CMake/C++/OsmAndMapCreator are external.
"""
from __future__ import annotations
import argparse
import csv
import datetime as dt
import hashlib
import json
import os
from pathlib import Path
import shutil
import subprocess
import sys
import urllib.request
import xml.etree.ElementTree as ET
ROOT = Path(__file__).resolve().parents[1]
UPSTREAM = {
'poi': 'https://raw.githubusercontent.com/osmandapp/OsmAnd-resources/master/poi/poi_types.xml',
'rendering': 'https://raw.githubusercontent.com/osmandapp/OsmAnd-resources/master/obf_creation/rendering_types.xml'
}
def call(argv, cwd=None, log=None, env=None):
argv = [str(s) for s in argv]
print('+', ' '.join(shlex_quote(s) for s in argv), flush=True)
if log:
with Path(log).open('w', encoding='utf-8') as output:
r = subprocess.run(argv, cwd=cwd, env=env, stdout=output, stderr=subprocess.STDOUT)
if r.returncode:
print('Command failed; last log lines:', file=sys.stderr)
print('\n'.join(Path(log).read_text(errors='replace').splitlines()[-35:]), file=sys.stderr)
raise SystemExit(r.returncode)
else:
subprocess.run(argv, cwd=cwd, env=env, check=True)
def shlex_quote(s):
import shlex
return shlex.quote(s)
def base_xml(provided, creator, key, cache, offline):
if provided:
p = Path(provided).expanduser().resolve()
if not p.is_file(): raise SystemExit('Upstream XML not found: '+str(p))
return p
names = ['poi_types.xml'] if key == 'poi' else ['rendering_types.xml']
if creator:
for prefix in [creator, creator/'resources', creator/'config', creator/'poi', creator/'obf_creation']:
for name in names:
candidate = prefix/name
if candidate.is_file(): return candidate.resolve()
target = cache/names[0]
if target.is_file(): return target
if offline:
raise SystemExit('Missing upstream '+names[0]+': pass --'+key+'-base FILE or allow download')
target.parent.mkdir(parents=True,exist_ok=True)
print('Fetching official OsmAnd '+names[0]+' (first run only) ...', flush=True)
try:
with urllib.request.urlopen(UPSTREAM[key], timeout=50) as u, target.open('wb') as out:
shutil.copyfileobj(u,out)
except Exception as ex:
target.unlink(missing_ok=True)
raise SystemExit('Cannot fetch official OsmAnd '+names[0]+': '+str(ex)+'\nProvide --'+key+'-base FILE manually.')
return target
def catalog_rows(p):
with Path(p).open('r',encoding='utf-8-sig',newline='') as f:
rows=list(csv.DictReader(f))
if not rows or not {'code','count','has_typ_icon'}.issubset(rows[0]):
raise SystemExit('Invalid POI catalog (expected code,count,has_typ_icon): '+str(p))
out=[]
seen=set()
for r in rows:
code='0x'+format(int(r['code'],0),'x')
if code in seen:raise SystemExit('Duplicate code in catalog: '+code)
seen.add(code)
out.append(dict(r,code=code,count=int(r['count'])))
return sorted(out,key=lambda r:(-r['count'],int(r['code'],0)))
def write_xml(tree,path):
ET.indent(tree,space=' ')
tree.write(path,encoding='utf-8',xml_declaration=True)
ET.parse(path)
def make_configs(poi_base,render_base,catalog,folder,threshold,frequent_zoom=15,rare_zoom=17):
# Keep entire upstream definitions! Replacing with a standalone tiny XML is
# precisely what used to make ordinary semantic POIs disappear.
poi=ET.parse(poi_base); proot=poi.getroot()
if proot.tag!='poi_types':raise SystemExit('Not an OsmAnd poi_types.xml: '+str(poi_base))
if any(c.get('name')=='bgmountains_raw' for c in proot.findall('poi_category')):
raise SystemExit('Input poi_types.xml already has a bgmountains_raw category')
cat=ET.SubElement(proot,'poi_category',name='bgmountains_raw', default_tag='bgm_poi', no_edit='true')
for r in catalog:
code=r['code']
ET.SubElement(cat,'poi_type',name='bgm_'+code.replace('0x',''),tag='bgm_poi',value='type_'+code,no_edit='true')
pa=folder/'poi_types.bgmountains.xml'
write_xml(poi,pa)
rendering=ET.parse(render_base); rroot=rendering.getroot()
if rroot.tag != 'osmand_types':
# OsmAnd resources use the tag 'rendering_types'; fail instead of dropping all built-in types.
raise SystemExit('Unexpected OsmAnd rendering_types.xml root: '+rroot.tag)
cats=[c for c in rroot.iter('category') if c.get('name')=='user_defined']
target=cats[0] if cats else ET.SubElement(rroot,'category',name='user_defined')
for r in catalog:
code=r['code']
ET.SubElement(target,'type',tag='bgm_poi',value='type_'+code,
minzoom=str(frequent_zoom) if r['count']>=threshold else str(rare_zoom))
rp=folder/'rendering_types.bgmountains.xml'
write_xml(rendering,rp)
summary={
'catalog_types':len(catalog),
'poi_count_in_catalog':sum(r.get('sample_count',r['count']) for r in catalog),
'types_at_or_above_threshold':sum(r['count']>=threshold for r in catalog),
'frequent_index_minzoom':frequent_zoom, 'rare_index_minzoom':rare_zoom,
'items_at_or_above_threshold':sum(r.get('sample_count',r['count']) for r in catalog if r['count']>=threshold),
'types_with_extracted_icon':sum(r['has_typ_icon']=='yes' for r in catalog),
'poi_base_sha256':hashlib.sha256(Path(poi_base).read_bytes()).hexdigest(),
'rendering_base_sha256':hashlib.sha256(Path(render_base).read_bytes()).hexdigest(),
'note':'All Garmin hex POI types indexed; high-frequency raw types inserted into OBF map index from selected frequent zoom; low-frequency from selected rare zoom. Rendering exact Garmin icon PNGs requires installing compatible icons/style in OsmAnd, not merely compiling an OBF.'
}
(folder/'type-index-summary.json').write_text(json.dumps(summary,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
return pa,rp,summary
def make_style(icon_csv, folder, catalog):
"""Optional addon for otherwise unclassified types using preinstalled OsmAnd icons.
This cannot install Garmin bitmap icons and must be enabled in OsmAnd.
"""
known={r['code'] for r in catalog}
with Path(icon_csv).open(encoding='utf-8-sig',newline='') as f:
rows=list(csv.DictReader(f))
visible=[]
for r in rows:
code='0x'+format(int(r['code'],0),'x')
if code not in known:continue # bbox builds are smaller than national config
if r['show_in_custom_style'].strip().lower() not in ('yes','true','1'):continue
name=r['osmand_builtin_icon'].strip()
if not name or not name.replace('_','').replace('-','').isalnum():
raise SystemExit('Invalid OsmAnd icon in '+str(icon_csv)+' for '+code)
zoom=int(r['minzoom'])
if not 1<=zoom<=21:raise SystemExit('Invalid icon zoom for '+code)
visible.append((code,name,zoom))
root=ET.Element('renderingStyle',name='BGMountains custom POIs',depends='default',
defaultColor='#fff8ee',version='1')
order=ET.SubElement(root,'order')
points=ET.SubElement(root,'point')
for code,name,zoom in visible:
ET.SubElement(order,'case',tag='bgm_poi',value='type_'+code,minzoom=str(zoom),
point='true',objectType='1',order='128')
ET.SubElement(points,'case',tag='bgm_poi',value='type_'+code,minzoom=str(zoom),
icon=name,iconOrder='10',iconVisibleSize='12')
path=folder/'BGMountains-custom.render.xml'
write_xml(ET.ElementTree(root),path)
return path,len(visible)
def obtain_creator(cache, offline=False):
"""Opt-in download from official OsmAnd nightly build (large file)."""
import zipfile
link='https://download.osmand.net/latest-night-build/OsmAndMapCreator-main.zip'
target=cache/'OsmAndMapCreator-main.zip'
extracted=cache/'unpacked'
found=list(extracted.rglob('utilities.sh')) if extracted.is_dir() else []
if found:return found[0].parent
if offline:raise SystemExit('Cannot download MapCreator with --offline; pass --creator')
cache.mkdir(parents=True,exist_ok=True)
if not target.is_file():
print('Downloading official OsmAndMapCreator (~150 MB) ...',flush=True)
try:
with urllib.request.urlopen(link,timeout=180) as src,target.open('wb') as dest:
shutil.copyfileobj(src,dest,length=2**20)
except Exception as ex:
target.unlink(missing_ok=True)
raise SystemExit('Cannot download OsmAndMapCreator: '+str(ex)+'\nDownload manually: '+link)
print('Extracting MapCreator...',flush=True)
extracted.mkdir(parents=True,exist_ok=True)
with zipfile.ZipFile(target) as z:
for m in z.infolist():
rel=Path(m.filename)
if rel.is_absolute() or '..' in rel.parts:
raise SystemExit('Unsafe file in MapCreator archive: '+m.filename)
z.extract(m,extracted)
found=list(extracted.rglob('utilities.sh'))
if not found:raise SystemExit('MapCreator ZIP extracted but utilities.sh not found')
for name in ('utilities.sh','inspector.sh'):
for f in extracted.rglob(name):f.chmod(f.stat().st_mode|0o111)
return found[0].parent
def resolve_creator(path):
name = path or os.environ.get('OSMAND_MAPCREATOR')
if not name:return None
creator=Path(name).expanduser().resolve()
if creator.is_file() and creator.name=='utilities.sh':creator=creator.parent
if not (creator/'utilities.sh').is_file():
raise SystemExit('Cannot find utilities.sh under '+str(creator))
return creator
def main():
p=argparse.ArgumentParser(description=__doc__,formatter_class=argparse.ArgumentDefaultsHelpFormatter)
inp=p.add_mutually_exclusive_group(required=True)
inp.add_argument('--img',help='Original Garmin IMG; converter is compiled and executed')
inp.add_argument('--osm',help='Already converted OSM XML; must contain bgm_poi=type_0x... tags (v0.7+)')
p.add_argument('--creator',help='OsmAndMapCreator directory containing utilities.sh (or OSMAND_MAPCREATOR env)')
p.add_argument('--download-creator',action='store_true',help='Download official OsmAndMapCreator ZIP automatically (~150 MB) when no --creator is set')
p.add_argument('--out',default='build/bgmountains-output',help='Output folder')
p.add_argument('--jobs',type=int,default=1,help='C++ IMG reader threads (opt-in)')
p.add_argument('--bbox',help='Optional W,S,E,N bounds for small-area test')
p.add_argument('--threshold',type=int,default=100,help='Frequent-type occurrence threshold')
p.add_argument('--frequent-zoom',type=int,default=15,help='Store frequent raw map icons at zoom N and above')
p.add_argument('--rare-zoom',type=int,default=17,help='Store rare raw map icons at zoom N and above')
p.add_argument('--icons-config',default=str(ROOT/'config/osmand-icons.csv'),help='OsmAnd built-in icon choices for custom addon style')
p.add_argument('--poi-overrides',default=str(ROOT/'config/poi-overrides-all-types.csv'))
p.add_argument('--poi-name-fixes',default=str(ROOT/'config/poi-name-fixes.csv'))
p.add_argument('--poi-additions',default=str(ROOT/'config/poi-additions.csv'))
p.add_argument('--poi-base',help='Official upstream poi_types.xml; if omitted use cache/download')
p.add_argument('--rendering-base',help='Official upstream rendering_types.xml; if omitted use cache/download')
p.add_argument('--offline',action='store_true',help='Never download upstream XML')
p.add_argument('--prepare-only',action='store_true',help='Do not run OsmAndMapCreator, but generate OSM and XMLs')
p.add_argument('--skip-qa',action='store_true',help='Skip OSM comparison for faster repeat runs')
p.add_argument('--java-opts',default='-Xms512M -Xmx8192M',help='JAVA_OPTS for OsmAndMapCreator')
p.add_argument('--skip-cpp-build',action='store_true')
p.add_argument('--catalog',help='Preexisting POI catalog when supplying --osm (otherwise use packaged nationwide catalog)')
p.add_argument('--frequency-catalog',default=str(ROOT/'data/BGMountains-unique-poi-types.csv'),help='Reference nationwide counts for map index zoom decisions even in --bbox builds')
args=p.parse_args()
if args.jobs<1 or args.jobs>64 or args.threshold<1 or not 1<=args.frequent_zoom<=21 or not 1<=args.rare_zoom<=21: p.error('--jobs 1..64; threshold >=1; zoom 1..21')
dest=Path(args.out).expanduser().resolve();dest.mkdir(parents=True,exist_ok=True)
creator=resolve_creator(args.creator)
if not creator and args.download_creator and not args.prepare_only:
creator=obtain_creator(ROOT/'build'/'mapcreator-download',args.offline)
if not creator and not args.prepare_only:p.error('Supply --creator /path/to/OsmAndMapCreator (or OSMAND_MAPCREATOR env) or use --prepare-only')
if args.img:
if not Path(args.img).is_file():p.error('IMG file missing: '+args.img)
binary=ROOT/'build'/'garmin2osm'
if not args.skip_cpp_build or not binary.is_file():
call(['cmake','-S',ROOT,'-B',ROOT/'build','-DCMAKE_BUILD_TYPE=Release'])
call(['cmake','--build',ROOT/'build','--config','Release','-j','2'])
osm=dest/'BGMountains.osm'
cmd=[binary,'--input',Path(args.img).resolve(),'--output',osm,'--poi-overrides',Path(args.poi_overrides).resolve(),
'--poi-name-fixes',Path(args.poi_name_fixes).resolve(),'--poi-additions',Path(args.poi_additions).resolve(),
'--poi-manifest',dest/'source-pois.csv','--poi-types-out',dest/'poi-types.csv','--jobs',args.jobs]
if args.bbox:cmd+=['--bbox',args.bbox]
call(cmd,log=dest/'converter.log')
catalog=dest/'poi-types.csv'
if not args.skip_qa:
call([sys.executable,ROOT/'tools/validate_pois.py','compare','--source',dest/'source-pois.csv','--osm',osm,
'--rules',Path(args.poi_overrides).resolve(),'--report',dest/'validation.json','--mismatches',dest/'mismatches.csv'],
log=dest/'validator.log')
else:
osm=Path(args.osm).expanduser().resolve()
if not osm.is_file():p.error('OSM file missing: '+str(osm))
catalog=Path(args.catalog).expanduser().resolve() if args.catalog else ROOT/'data'/'BGMountains-unique-poi-types.csv'
rows=catalog_rows(catalog)
nationwide={r['code']:r['count'] for r in catalog_rows(args.frequency_catalog)} if args.frequency_catalog else {}
for row in rows:
row['sample_count']=row['count']
row['count']=nationwide.get(row['code'],row['count'])
# A separately supplied legacy OSM might lack our new classifier.
# For --img, the v0.7 converter above just generated it by construction.
if args.osm:
import gzip
opener=gzip.open if osm.suffix=='.gz' else open
with opener(osm,'rt',encoding='utf-8',errors='replace') as f:
found=any('k="bgm_poi"' in line for line in f)
if not found:
raise SystemExit('Existing OSM lacks bgm_poi; re-extract with v0.7 C++ converter.')
folder=dest/'osmand-config';folder.mkdir(exist_ok=True)
poi_base=base_xml(args.poi_base,creator,'poi',dest/'upstream',args.offline)
rendering_base=base_xml(args.rendering_base,creator,'rendering',dest/'upstream',args.offline)
poi_cfg,render_cfg,summary=make_configs(poi_base,rendering_base,rows,folder,args.threshold,args.frequent_zoom,args.rare_zoom)
style,nicons=make_style(args.icons_config,folder,rows)
print('Indexed POI types:',summary['catalog_types'],'frequent:',summary['types_at_or_above_threshold'],'custom style icons:',nicons,flush=True)
if args.prepare_only:
print('PREPARED (no OBF generated). Files at:',dest)
return 0
before={str(i.resolve()) for i in dest.glob('*.obf')}
# Save Java logs, and preserve OsmAndMapCreator temp data inside user-selected output dir.
env=os.environ.copy();env['JAVA_OPTS']=args.java_opts
program=creator/'utilities.sh'
cmd=[str(program),'generate-obf-no-address',str(osm),
'--poi-types='+str(poi_cfg),'--rendering-types='+str(render_cfg)]
call(cmd,cwd=dest,log=dest/'mapcreator.log',env=env)
after=[i for i in dest.glob('*.obf') if str(i.resolve()) not in before]
if not after:
# Creator sometimes writes next to the .osm source, even with cwd changed.
alt=list(osm.parent.glob('*.obf'))
after=[i for i in alt if i.is_file()]
if not after:raise SystemExit('MapCreator returned success but no .obf was found; see '+str(dest/'mapcreator.log'))
built=max(after,key=lambda p:p.stat().st_mtime)
print('OBF created:',built,'bytes:',built.stat().st_size)
if (creator/'inspector.sh').is_file():
call([str(creator/'inspector.sh'),'-vpoi',str(built)],cwd=dest,log=dest/'obf-poi-index.txt',env=env)
(dest/'build-manifest.json').write_text(json.dumps({
'created_at_utc':dt.datetime.now(dt.timezone.utc).isoformat(),
'obf':str(built),'obf_bytes':built.stat().st_size,
'input_osm':str(osm),'poi_types':str(poi_cfg),'rendering_types':str(render_cfg),
'custom_style':str(style), 'custom_style_icon_rules':nicons,
'summary':summary
},ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
return 0
if __name__=='__main__':
sys.exit(main())
+13 -16
View File
@@ -1,18 +1,15 @@
#!/usr/bin/env bash
# Compatibility shim. No manually supplied POI XML files are required anymore.
# Preferred: python3 scripts/build_bgmountains.py --img gmapsupp.img --download-creator --out ./build/out
set -euo pipefail
# Usage: build_obf.sh /path/OsmAndMapCreator map.osm[.gz] [--poi-types full-poi_types.xml] [--rendering-types full-rendering_types.xml]
if (( $# < 2 )); then echo "Usage: $0 CREATOR_DIR MAP.osm[.gz] [--poi-types FILE] [--rendering-types FILE]" >&2;exit 2;fi
creator="$1"; input="$2";shift 2
[[ -f "$creator/utilities.sh" && -f "$input" ]] || { echo 'Missing OsmAnd utilities.sh or map input' >&2;exit 1; }
args=(generate-obf-no-address "$input")
while (( $# > 0 )); do
case "$1" in
--poi-types|--rendering-types)
(( $# >= 2 )) || { echo "Missing file after $1" >&2;exit 2; }
[[ -f "$2" ]] || { echo "Config not found: $2" >&2;exit 2; }
args+=("$1=$2");shift 2;;
*) echo "Unknown option: $1" >&2;exit 2;;
esac
done
export JAVA_OPTS="${JAVA_OPTS:--Xms256M -Xmx4096M}"
"$creator/utilities.sh" "${args[@]}"
if (( $# < 2 )); then
echo "Usage: $0 CREATOR_DIR INPUT_v0.7.osm[.gz] [OUTPUT_DIR]" >&2
echo "Recommended instead: python3 scripts/build_bgmountains.py --img gmapsupp.img --download-creator --out ./build/out" >&2
exit 2
fi
creator="$1"; osm="$2"; out="${3:-$(dirname "$osm")/rebuilt-obf}"
root="$(cd "$(dirname "$0")/.." && pwd)"
source_dir="$(dirname "$osm")"
args=(--osm "$osm" --creator "$creator" --out "$out")
if [[ -f "$source_dir/poi-types.csv" ]]; then args+=(--catalog "$source_dir/poi-types.csv"); fi
exec python3 "$root/scripts/build_bgmountains.py" "${args[@]}"
+7 -2
View File
@@ -238,13 +238,18 @@ std::string resolveNameFix(const std::string&map,int type,double lat,double lon,
std::optional<Tags> configuredPoi(int type,const std::string&name){
Tags result=poiTags(type,name);
auto hit=overrides.find(type);if(hit==overrides.end())return result;
for(const auto&rule:hit->second){if(!rule.nameContains.empty()&&name.find(rule.nameContains)==std::string::npos)continue;
auto hit=overrides.find(type);
if(hit!=overrides.end())for(const auto&rule:hit->second){
if(!rule.nameContains.empty()&&name.find(rule.nameContains)==std::string::npos)continue;
if(rule.mode=="drop")return std::nullopt;
if(rule.mode=="replace"||rule.mode=="keep_raw"){
result.erase(std::remove_if(result.begin(),result.end(),[](const auto&kv){return kv.first!="garmin:type"&&kv.first!="garmin:feature"&&kv.first!="name";}),result.end());}
for(const auto&[k,v]:rule.tags){result.erase(std::remove_if(result.begin(),result.end(),[&](const auto&kv){return kv.first==k;}),result.end());if(!v.empty())result.emplace_back(k,v);}
}
// BGM-specific stable classifier: register in custom OsmAnd POI and map indexes.
// Never disguise unknown objects as a fake OSM tourism/amenity category.
result.erase(std::remove_if(result.begin(),result.end(),[](const auto&kv){return kv.first=="bgm_poi";}),result.end());
tag(result,"bgm_poi","type_"+code(type));
return result;
}
struct Sample{std::string map,name;double lat=0,lon=0;};
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env python3
"""Offline contract tests: upstream XML augmentation and frequent/rare type retention."""
import importlib.util
from pathlib import Path
import tempfile
import unittest
import xml.etree.ElementTree as ET
S=Path(__file__).resolve().parents[1]/'scripts'/'build_bgmountains.py'
spec=importlib.util.spec_from_file_location('build_bgmountains',S)
mod=importlib.util.module_from_spec(spec);spec.loader.exec_module(mod)
class XmlPipelineTests(unittest.TestCase):
def test_full_default_preserved_and_all_codes_indexed(self):
with tempfile.TemporaryDirectory() as td:
td=Path(td)
pb=td/'upstream-poi.xml';rb=td/'upstream-render.xml'
pb.write_text('<poi_types><poi_category name="food"><poi_type name="restaurant" tag="amenity" value="restaurant"/></poi_category></poi_types>')
rb.write_text('<osmand_types><category name="roads"><type tag="highway" value="path" minzoom="11"/></category><category name="user_defined"/></osmand_types>')
cc=[dict(code='0x6414',count=32922,has_typ_icon='yes'),dict(code='0x123',count=1,has_typ_icon='no')]
a,b,s=mod.make_configs(pb,rb,cc,td,100)
p=ET.parse(a).getroot();r=ET.parse(b).getroot()
self.assertIsNotNone(p.find(".//poi_type[@name='restaurant']"))
self.assertEqual(len(p.findall(".//poi_category[@name='bgmountains_raw']/poi_type")),2)
self.assertIsNotNone(r.find(".//type[@tag='highway']"))
self.assertEqual(r.find(".//type[@value='type_0x6414']").get('minzoom'),'15')
self.assertEqual(r.find(".//type[@value='type_0x123']").get('minzoom'),'17')
self.assertEqual(s['types_at_or_above_threshold'],1)
def test_real_catalog(self):
d=mod.catalog_rows(S.parents[1]/'data'/'BGMountains-unique-poi-types.csv')
self.assertEqual(len(d),263)
self.assertEqual(sum(x['count'] for x in d),410563)
self.assertEqual(sum(x['count']>=100 for x in d),87)
if __name__=='__main__':unittest.main()