Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
680c44e92c | ||
|
|
3211170ca5 | ||
|
|
fe9e9b593e | ||
|
|
f8ede7f4a6 |
@@ -1,3 +1,5 @@
|
|||||||
garmin2osmand-v3/*.osm
|
garmin2osmand-v3/*.osm
|
||||||
*.obf*
|
*.obf*
|
||||||
*.ocbf*
|
*.ocbf*
|
||||||
|
compiling-obf/*
|
||||||
|
bgmountains-build/*
|
||||||
|
|||||||
+8
-1
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
project(garmin2osmand VERSION 0.6.0 LANGUAGES CXX)
|
project(garmin2osmand VERSION 0.8.0 LANGUAGES CXX)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
find_package(PNG REQUIRED)
|
find_package(PNG REQUIRED)
|
||||||
@@ -23,3 +23,10 @@ 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 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)
|
add_test(NAME bgmountains_legend_audit COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_legend_audit.py)
|
||||||
endif()
|
endif()
|
||||||
|
if(Python3_Interpreter_FOUND)
|
||||||
|
add_test(NAME osmand_obf_pipeline_xml COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_obf_pipeline.py)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(Python3_Interpreter_FOUND)
|
||||||
|
add_test(NAME bgmountains_v08_display_mappings COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_v08_config.py)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1,66 +1,103 @@
|
|||||||
# BGMountains Garmin IMG → OSM v0.6 (legend-reviewed, spatially validated)
|
# BGMountains Garmin IMG → OSM → OsmAnd OBF v0.8
|
||||||
|
|
||||||
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.
|
**This release fixes the v0.7 icon-visibility blind spot and anonymous POIs.**
|
||||||
|
|
||||||
## Corrected
|
- Every one of the **263 validated retained Garmin POI types** has at least one conventional OSM semantic/display tag in `config/poi-overrides-all-types.csv`, in addition to raw `bgm_poi`/`garmin:*` provenance tags.
|
||||||
|
- **87 codes** occur at least 100 times in the source catalog (409,154 source POIs). **46** use conventional feature categories recognized by stock OsmAnd in principle; **41** use an explicitly marked, synthetic `tourism=information;information=board` **local-OsmAnd display fallback**. Some additional lower-frequency codes also need fallback. This DOES NOT assert that the physical object is an information board.
|
||||||
|
- Missing original IMG names become stable Bulgarian descriptive names, e.g. `Вода - Каптаж - 1THF1SDNTKJ`, with `bgm:generated_name=yes`. Original nonempty names are preserved.
|
||||||
|
- `--jobs N` enables parallel extraction, **default one thread**.
|
||||||
|
- New `tools/audit_icon_coverage.py` verifies source OSM classification coverage, names and produces per-type coordinate report. It **does not** prove OBF index presence or visual display; use an OBF inspector and OsmAnd for that.
|
||||||
|
- Map-derived icon art and datasets remain governed by BGMountains' applicable copyright conditions. These synthetic POI tags are **not appropriate for uploading unchanged to the real OpenStreetMap database**.
|
||||||
|
|
||||||
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.
|
## Quick build (Ubuntu/Debian)
|
||||||
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
|
```sh
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y build-essential cmake libpng-dev libsqlite3-dev python3 openjdk-21-jre-headless unzip
|
||||||
|
|
||||||
- `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.
|
python3 scripts/build_bgmountains.py \
|
||||||
- `config/poi-name-fixes.csv`: name correction template, no active fixes by default.
|
--img /absolute/path/to/gmapsupp.img \
|
||||||
- `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.
|
--out ./BGMountains-out \
|
||||||
- `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.
|
--download-creator
|
||||||
- `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
|
|
||||||
|
|
||||||
```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
|
|
||||||
|
|
||||||
./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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Parallelism: append `--jobs 4` to the converter command if desired; otherwise it uses one worker.
|
`--download-creator` is for the official OsmAndMapCreator, and the pipeline downloads the original official `poi_types.xml` and `rendering_types.xml` the first time as needed. Network access is required for these unless you already supply the files. **This runtime did not have MapCreator, so full OBF compilation was not executed here.**
|
||||||
|
|
||||||
**Adding one verified name correction:** edit `config/poi-name-fixes.csv`, with this schema:
|
Already installed OsmAndMapCreator:
|
||||||
|
|
||||||
```csv
|
```sh
|
||||||
mapset,code,lat,lon,old_name,new_name,note
|
python3 scripts/build_bgmountains.py --img ./gmapsupp.img --out ./BGMountains-out \
|
||||||
# Example (illustrative; this row is NOT a real correction):
|
--creator /path/to/OsmAndMapCreator
|
||||||
# 02234071,0x6609,42.1897745,23.2835913,Х.Иван Вазов,х. Иван Вазов,Check actual Garmin source before use
|
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
Opt-in parallelism: add `--jobs 4`. The output directory must be fresh: the converter refuses to overwrite an existing OSM or staging files.
|
||||||
|
|
||||||
## What this does not prove
|
Prepare and validate the OSM without invoking the Java OBF builder:
|
||||||
|
|
||||||
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.
|
```sh
|
||||||
|
python3 scripts/build_bgmountains.py --img ./gmapsupp.img --out ./BGMountains-preview \
|
||||||
|
--prepare-only
|
||||||
|
```
|
||||||
|
|
||||||
## 0x10d1f / Несебър
|
**IMPORTANT: You must REBUILD the OSM and OBF.** This update cannot modify an already compiled `.obf` or give v0.7 output its new tags in place.
|
||||||
|
|
||||||
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.
|
## What the configuration files mean
|
||||||
|
|
||||||
|
| File | Purpose |
|
||||||
|
|---|---|
|
||||||
|
| `config/poi-overrides-all-types.csv` | **Active** 1,871-row config, including 263 retained types with revised tags. `mode=replace` replaces old hardcoded semantics, retaining provenance/name. All non-present legacy type rows remain for historical comparison. |
|
||||||
|
| `config/poi-overrides-all-types-v07-user-upload.csv` | Exact backup of the CSV you supplied. |
|
||||||
|
| `config/poi-labels-bg.csv` | New 263-row Bulgarian fallback name prefixes, editable. |
|
||||||
|
| `config/poi-icon-audit.csv` | All 263 types, count, original tags vs new tags, classification confidence and sample coordinates. |
|
||||||
|
| `config/osmand-icons.csv` | Optional **custom render style** icon names/visibility; never controls the default `tourism=information` fallback injected through the active overrides. |
|
||||||
|
| `data/BGMountains-frequent-poi-types-100plus-v08.csv` | All 87 frequent types, with reviewed tags, classification mode and coordinates. |
|
||||||
|
| `tools/audit_icon_coverage.py` | Independent POI OSM field audit; one row per present type. |
|
||||||
|
|
||||||
|
**How to edit a type:** find `code=0x6500` in active overrides. Edit the **tags** column, leaving a `key=value;key=value` list. Change `mode=replace` only if you understand how the C++ built-in classifications merge. Set a Bulgarian text prefix in `config/poi-labels-bg.csv`. Run again from scratch to rebuild OSM then OBF.
|
||||||
|
|
||||||
|
### Why 0x6500 is not `amenity=drinking_water`
|
||||||
|
|
||||||
|
The original legend labels this a **каптаж** (water intake/catchment), not necessarily a drinking-water source. v0.8 records `man_made=water_intake` but adds an explicit *presentation-only* `tourism=information;information=board;bgm:synthetic_icon=yes` for common OsmAnd rendering. The "information board" is NOT a physical claim. The default Bulgarian name prefix is `Вода - Каптаж`. If you want `Вода - Резервоар`, just edit the label CSV; do not misrepresent a small intake as an artificial lake (`natural=water;water=reservoir`).
|
||||||
|
|
||||||
|
`0x6602` already has `tourism=viewpoint` and does not use a synthetic board marker. Its failure to appear in a particular existing OBF could be an old build, incomplete POI indexing, or display suppression—only inspecting that actual OBF can distinguish these.
|
||||||
|
|
||||||
|
### Stable anonymous names
|
||||||
|
|
||||||
|
For an unnamed POI, `name = Bulgarian_label + " - " + FNV1a_base36_11(mapset|type|quantized_lat|quantized_lon)`. The output is deterministic for an identical IMG and coordinates across threads and builds. A very small collision probability remains; the coordinates/mapset/type remain available. These generated names are for an offline map, **not actual surveyed names**.
|
||||||
|
|
||||||
|
### Test against your three sample coordinates
|
||||||
|
|
||||||
|
| Type | Coordinates | Expected tags | v0.8 generated name |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `0x6602` | `42.0346141,24.6528697` | `tourism=viewpoint` | `Панорама - Гледка - 25IVP49H823` |
|
||||||
|
| `0x6500` | `42.0347643,24.6522689` | `man_made=water_intake;tourism=information;information=board` | `Вода - Каптаж - 1THF1SDNTKJ` |
|
||||||
|
| `0x6500` | `42.0340991,24.6520114` | Same | `Вода - Каптаж - ED03D455VTZ` |
|
||||||
|
|
||||||
|
These examples were directly extracted from the 422MiB IMG into a Plovdiv test OSM and compared to a source manifest. All 57 POIs in that test passed exact semantic-tag checks, with **zero missing and extra**. Serial vs `--jobs 4` POI identities/tags were equal.
|
||||||
|
|
||||||
|
## Review before copying `.obf` into OsmAnd
|
||||||
|
|
||||||
|
Pipeline artifacts in `--out`:
|
||||||
|
- `BGMountains.osm` — exact source XML for the OBF builder
|
||||||
|
- `source-pois.csv`, `poi-types.csv` — extraction manifest and type counts
|
||||||
|
- `validation.json`, `mismatches.csv` — original-source to OSM audit
|
||||||
|
- `poi-coverage.csv`, `poi-coverage.json` — export display mapping coverage
|
||||||
|
- `osmand-config/poi_types.bgmountains.xml`, `rendering_types.bgmountains.xml` — registrations added to **complete upstream XML**
|
||||||
|
- `osmand-config/BGMountains-custom.render.xml` — optional style; exact Garmin TYP art is NOT embedded into stock OsmAnd
|
||||||
|
- `*.obf` plus `mapcreator.log`, `obf-poi-index.txt` (only after a successful Java compilation)
|
||||||
|
|
||||||
|
The `tourism=information` fallback should give OsmAnd a native searchable POI category in an appropriate compatible build. **Neither an OSM tag nor an indexed OBF proves a symbol will be drawn at every zoom**: the map style, profile, POI filters, icon availability, density/collision and selected offline map still affect visibility. Test at zoom 17–20 with POI layers enabled. Avoid having an old overlapping BGMountains OBF selected at the same time.
|
||||||
|
|
||||||
|
To inspect your built file with OsmAndMapCreator:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
/path/to/OsmAndMapCreator/inspector.sh -vpoi -vpoiobjects \
|
||||||
|
-bbox=24.64,42.05,24.665,42.02 ./BGMountains-out/*.obf \
|
||||||
|
> ./BGMountains-out/plovdiv-obf-inspector.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Inspect output for the three named POIs. **There is no tested generic parser of OsmAndMapCreator's inspector text in this package**, and we have not verified a full-country OBF built from v0.8 in this runtime. If OSM has the POI but the inspector doesn't, focus on indexing or generated XML; if inspector has it but the screen doesn't, focus on style/POI display/filter/zoom.
|
||||||
|
|
||||||
|
### Local-only licensing warning
|
||||||
|
|
||||||
|
Do not upload the generated synthetic display tags to OpenStreetMap or assert they accurately describe physical information boards. The original IMG, derived icons and extracts can have third-party copyright restrictions. The source-only code path should be distributed separately from map-derived sample assets until rights are confirmed.
|
||||||
|
|||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
export JAVA_OPTS="-Xms256M -Xmx25G"
|
||||||
|
|
||||||
|
../../scripts/build_obf.sh \
|
||||||
|
$(realpath .) \
|
||||||
|
$(realpath ../Bulgaria-garmin.osm)
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
wget https://download.osmand.net/latest-night-build/OsmAndMapCreator-main.zip
|
||||||
|
unzip *.zip
|
||||||
@@ -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,yes,18,tourism_information,2,yes,Capital City,place=city;capital=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=capital_city,41.0612941,28.8116670,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x800,yes,18,tourism_information,51,yes,Large City,place=city;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=large_city,43.9025259,22.2788572,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x900,yes,16,tourism_information,283,yes,Town,place=town;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=town,42.0570374,24.5459247,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0xd00,yes,16,tourism_information,6610,no,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,41.6287208,23.7694144,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0xe00,yes,16,tourism_information,114,no,,place=neighbourhood;tourism=information;information=board;bgm:synthetic_icon=yes,43.9952660,22.8717756,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1100,yes,16,tourism_information,8430,no,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,42.5975990,22.5972247,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2800,yes,16,tourism_information,54902,no,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,42.6277471,24.3122506,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2a07,yes,16,tourism_information,227,no,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,43.8551474,25.9693837,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2a0e,no,16,information,525,yes,,shop=yes,42.0046806,24.8740768,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2b00,no,16,information,1558,no,,tourism=hotel,42.6465440,27.6449919,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2c01,yes,18,tourism_information,20,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.0264173,23.9946342,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2c02,no,16,information,538,yes,,amenity=kindergarten,42.3479176,25.0754786,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2c03,no,16,information,474,yes,,amenity=community_centre,43.2219315,25.7480693,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2c05,no,16,information,2481,yes,School,amenity=school;garmin:legend=school,41.7214394,24.6845198,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2c06,yes,18,tourism_information,57,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2240987,27.9363871,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2c07,yes,18,tourism_information,20,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1368518,24.7227359,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2c08,no,16,information,1328,yes,,leisure=horse_riding,41.9112968,24.9703360,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2c0b,no,16,information,1606,yes,Church,amenity=place_of_worship;garmin:legend=church,43.0217957,24.8099613,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2d01,yes,18,tourism_information,68,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.8797030,25.3179932,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2d02,yes,16,tourism_information,434,no,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,42.1507859,24.7315550,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2d03,yes,18,tourism_information,57,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6922703,23.3241892,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2d09,no,16,information,337,yes,,leisure=swimming_pool,41.8625021,23.5053134,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e02,no,16,information,477,no,,shop=convenience,41.6551137,25.5503798,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e03,no,16,information,502,no,,shop=yes,43.2763910,27.9675651,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e04,yes,18,tourism_information,66,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5185919,27.4564004,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2e05,no,16,information,487,yes,Pharmacy,amenity=pharmacy;garmin:legend=pharmacy,42.7442837,25.3431416,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e06,no,16,information,348,no,,shop=yes,43.4717417,23.9467192,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e07,no,16,information,105,yes,Clothes shop,shop=clothes;garmin:legend=clothes_shop,43.0698609,25.6080151,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e08,yes,18,tourism_information,13,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.7295208,23.2671332,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2e09,yes,18,tourism_information,8,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2294202,27.8701901,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2e0a,no,16,information,159,no,,shop=car,43.8517356,25.9867859,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2e0b,yes,18,tourism_information,52,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.1881008,24.3556809,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2f00,yes,16,tourism_information,1269,yes,,landuse=industrial;tourism=information;information=board;bgm:synthetic_icon=yes,42.9236698,24.2466116,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2f01,no,16,information,778,no,,amenity=fuel,41.5430832,23.2712317,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f03,no,16,information,106,no,,shop=car_repair,41.3775158,25.0830102,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f05,no,16,information,486,no,,amenity=post_office,42.0306015,23.8108063,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f06,no,16,information,320,no,,amenity=bank,42.3073840,23.8596869,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f08,yes,16,tourism_information,123,yes,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,42.6397204,23.3731771,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2f0a,no,18,information,4,yes,Synagogue,amenity=place_of_worship;religion=jewish;garmin:legend=synagogue,41.5711713,23.7286234,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f0b,yes,16,tourism_information,1499,no,,leisure=track;tourism=information;information=board;bgm:synthetic_icon=yes,43.7308860,23.9443588,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x2f0c,no,16,information,320,yes,Mosque,amenity=place_of_worship;religion=muslim;garmin:legend=mosque,44.0549612,26.7991304,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x2f0e,no,18,information,4,yes,Car Wash,amenity=car_wash;garmin:legend=car_wash,42.2939301,22.7035904,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x3001,yes,16,tourism_information,170,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.3623934,25.1447439,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x3002,no,16,information,564,no,,emergency=first_aid,42.5638032,27.6036644,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x3003,no,16,information,841,no,,amenity=townhall,43.2501698,27.7748966,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x3006,yes,18,tourism_information,85,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.7391043,28.5608482,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x3007,yes,16,tourism_information,132,no,,man_made=pumping_station;tourism=information;information=board;bgm:synthetic_icon=yes,43.2023406,25.7318473,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x3008,no,18,information,37,yes,Fire Station,amenity=fire_station;garmin:legend=fire_station,42.5666571,27.6193285,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x4700,yes,16,tourism_information,101,yes,Port,industrial=port;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=port,41.6431189,25.2845192,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x4e00,yes,18,tourism_information,14,no,,tourism=information;information=board;bgm:synthetic_icon=yes,41.9877291,24.0870094,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6400,yes,16,tourism_information,465,yes,Quarry,landuse=quarry;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=quarry,40.8776808,23.9436078,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6401,yes,16,tourism_information,1679,yes,Bridge,man_made=bridge;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bridge,42.6645684,22.9691291,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6402,yes,16,tourism_information,6186,yes,Building,building=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=building,42.5507569,23.2217932,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6403,yes,16,tourism_information,1729,yes,Graveyard/Tombstone,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,43.0418801,23.5914874,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6404,no,16,information,1507,yes,Church,amenity=place_of_worship;garmin:legend=church,42.1896243,27.0861053,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6405,yes,16,tourism_information,260,yes,Hunting Lodge,building=hut;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=hunting_lodge,42.7514720,27.2207522,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6406,yes,16,tourism_information,854,yes,Barrier/Gate,barrier=gate;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=barrier_gate,41.5502286,24.7455668,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6407,no,16,information,2861,yes,Picnic Site,tourism=picnic_site;garmin:legend=picnic_site,41.9156528,25.3233576,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6408,no,18,information,12,yes,Mountain Rescue,emergency=mountain_rescue;garmin:legend=mountain_rescue,42.6026416,23.2414269,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6409,no,16,information,1235,yes,Monument,historic=monument;garmin:legend=monument,43.1282043,23.6027098,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x640a,yes,16,tourism_information,2095,yes,Danger,hazard=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=danger,43.1507993,25.3284001,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x640b,no,16,information,1128,yes,Chapel,amenity=place_of_worship;garmin:legend=chapel,41.9598985,24.3688774,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x640c,yes,16,tourism_information,1353,yes,Mine Shaft,man_made=mine_shaft;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mine_shaft,43.0497336,22.9328442,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x640d,yes,16,tourism_information,137,yes,Lift,aerialway=station;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=lift,42.6056242,23.2995987,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x640e,yes,16,tourism_information,977,yes,Bus Stop/Station,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,43.3513427,25.1430917,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x640f,yes,16,tourism_information,2766,yes,Graveyard/Tombstone,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,42.0345068,22.4919534,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6410,yes,18,tourism_information,98,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.6105728,23.6852574,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6411,no,16,information,875,yes,Tower,man_made=tower;garmin:legend=tower,41.7411375,24.8182654,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6413,yes,18,tourism_information,76,yes,Tunnel,tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=tunnel,42.6872063,23.3418703,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6414,no,16,information,32922,yes,Drinking Water,amenity=drinking_water;garmin:legend=drinking_water,43.1117034,23.7205982,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6415,no,16,information,264,yes,Camp Site,tourism=camp_site;garmin:legend=camp_site,41.7506647,25.1023221,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6416,no,16,information,2886,yes,Ruins,historic=ruins;garmin:legend=ruins,41.5940452,24.3094182,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6417,no,16,information,8868,yes,Well,man_made=water_well;garmin:legend=well,42.2628808,24.2223430,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6418,yes,16,tourism_information,305,yes,,power=generator;generator:source=wind;tourism=information;information=board;bgm:synthetic_icon=yes,42.7693677,26.3003898,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6419,yes,16,tourism_information,113,yes,,power=generator;generator:source=solar;tourism=information;information=board;bgm:synthetic_icon=yes,42.5478601,26.7053819,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x641a,no,18,information,62,yes,Church,amenity=place_of_worship;garmin:legend=church,42.9599547,23.0566549,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x641c,yes,16,tourism_information,3120,yes,Bus Stop/Station,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,42.8542113,25.3382707,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x641d,yes,18,tourism_information,17,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.1828008,24.7408462,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x641e,yes,18,tourism_information,55,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.3201728,24.3003416,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x641f,yes,18,tourism_information,1,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.7468505,23.7692428,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6500,yes,16,tourism_information,31214,yes,Reservoir,man_made=water_intake;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=reservoir,42.0310307,24.7559094,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6501,no,16,information,2412,yes,Restaurant,amenity=restaurant;garmin:legend=restaurant,43.3456135,28.0715060,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6502,yes,16,tourism_information,1864,yes,River Passage,ford=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=river_passage,42.7929711,25.2992177,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6503,yes,16,tourism_information,760,yes,Crossroad,bgm:trail_junction=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=crossroad,43.4149003,28.4942007,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6506,no,16,information,424,yes,Museum,tourism=museum;garmin:legend=museum,42.1463013,24.7487855,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x650b,yes,16,tourism_information,8767,yes,Winter Marking,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=winter_marking,42.0000887,23.3820820,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6511,no,16,information,50308,yes,Spring,natural=spring;garmin:legend=spring,42.8732872,23.3371925,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6600,yes,16,tourism_information,66206,yes,Triangulation,bgm:spot_height=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=triangulation,41.2312603,22.6785922,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6601,yes,16,tourism_information,165,yes,Natural Phenomenon,bgm:landmark=natural_phenomenon;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=natural_phenomenon,42.9589677,25.2119064,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6602,no,16,information,891,yes,Viewpoint,tourism=viewpoint;garmin:legend=viewpoint,41.7438412,23.4641790,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6603,no,16,information,26366,yes,Triangulation,man_made=survey_point;garmin:legend=triangulation,42.5520873,23.8540435,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6604,yes,18,tourism_information,10,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.2186995,27.7872348,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6608,no,16,information,2644,yes,Hotel,tourism=hotel;garmin:legend=hotel,42.8794885,27.8957462,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6609,no,16,information,372,yes,Hut,tourism=alpine_hut;garmin:legend=hut,43.2779145,27.1159101,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x660a,no,16,information,275,yes,Refuge,amenity=shelter;shelter_type=basic_hut;garmin:legend=refuge,42.8157377,23.8160634,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x660b,yes,16,tourism_information,2612,yes,Mark,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mark,43.9378452,22.4072385,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x660c,no,18,information,94,yes,,natural=saddle,43.6241341,22.4983478,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x660d,yes,18,tourism_information,8,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6904893,23.4124017,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x660e,yes,18,tourism_information,8,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,43.4520006,24.5126653,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x660f,yes,18,tourism_information,44,yes,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6426816,26.3592696,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6610,yes,18,tourism_information,15,yes,Meadow,tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=meadow,42.8212094,26.1542845,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6613,yes,16,tourism_information,1746,yes,Waterfall,waterway=waterfall;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=waterfall,42.7435327,24.6398234,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6614,yes,16,tourism_information,15289,yes,Rock,natural=rock;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=rock,42.7437901,25.2693915,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x6615,no,16,information,942,yes,Cave,natural=cave_entrance;garmin:legend=cave,41.8003178,23.3853436,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6616,no,16,information,15540,no,,natural=peak,42.8516150,25.7782173,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6617,no,16,information,112,yes,Peak,natural=peak;garmin:legend=peak,41.7893529,22.9647946,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6618,no,16,information,10176,yes,Tree,natural=tree;garmin:legend=tree,42.7752686,23.9033318,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x6619,no,16,information,195,yes,Prehistoric site,historic=archaeological_site;garmin:legend=prehistoric_site,42.5703692,25.3767228,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x661a,no,16,information,384,yes,Antiquity site,historic=archaeological_site;garmin:legend=antiquity_site,41.7153454,26.0307527,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x661b,no,16,information,319,yes,Medieval site,historic=archaeological_site;garmin:legend=medieval_site,42.0922279,24.2505813,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x661c,yes,16,tourism_information,1169,yes,,bgm:landmark=mound;tourism=information;information=board;bgm:synthetic_icon=yes,41.8346500,26.4578676,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x661d,yes,16,tourism_information,1412,yes,,building=agricultural;tourism=information;information=board;bgm:synthetic_icon=yes,41.1914778,24.0922236,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x661e,no,16,information,979,yes,,amenity=shelter,41.4122772,24.8197031,Native OSM feature category; visual display needs OBF/app check.
|
||||||
|
0x10000,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1772995,27.7539325,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10018,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1856465,27.9490042,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10100,yes,18,tourism_information,12,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4783373,27.4493837,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10118,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1870842,27.6683164,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1011e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5841022,27.6902461,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10204,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6573801,27.7476025,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10205,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4590254,27.5740099,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10209,yes,18,tourism_information,8,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4733591,27.4699187,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1020a,yes,18,tourism_information,9,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4602699,27.4538684,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1020b,yes,18,tourism_information,5,no,,tourism=information;information=board;bgm:synthetic_icon=yes,41.8699050,28.0232477,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1020c,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1899381,27.8013968,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10218,yes,18,tourism_information,3,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.0534110,27.9847956,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10301,yes,16,tourism_information,2006,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.4377956,28.9283538,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10401,yes,16,tourism_information,157,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6565218,27.7297497,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10402,yes,18,tourism_information,41,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2109666,28.1308579,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10403,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,41.3038731,28.7996078,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1040d,yes,16,tourism_information,229,no,,tourism=information;information=board;bgm:synthetic_icon=yes,41.9180989,28.0489111,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1040e,yes,18,tourism_information,4,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.8295565,27.9202938,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1041e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6499343,27.8320599,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052803,27.9446054,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10602,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.7095008,27.8530884,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1061d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2051730,27.9395843,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10701,yes,18,tourism_information,58,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1964397,27.8618217,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10705,yes,18,tourism_information,33,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2224250,28.1217384,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10706,yes,18,tourism_information,32,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.4509492,28.8183832,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10801,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.8644896,27.9285121,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10903,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6283908,27.6877141,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10a01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2014394,27.8667355,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10b01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,41.8894100,28.0229688,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10b09,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2140994,27.9750752,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10c00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2016969,27.9050374,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x10d01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2011819,27.8610492,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1161f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1953883,27.9319453,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1171e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2054305,27.8968406,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1181f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2013321,27.7061892,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x11901,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.8046575,28.5944295,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x11902,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2049370,27.7813983,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x11a02,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1968260,27.6557207,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1201f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5242352,27.5483894,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12102,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4892378,27.5353217,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12502,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015038,27.8690314,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12a03,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6277685,27.7115536,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12c1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2013321,27.7046227,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12d01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1838441,27.9260015,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x12e1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2423377,28.1846094,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x13001,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1683517,28.0398345,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1321f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6127267,27.8121257,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1331f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015467,27.8662419,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x13400,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1861830,27.9269886,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x13a01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5860548,27.6915121,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x13c03,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4661279,27.6418805,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x13d1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2068896,27.9138136,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1411e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2047009,27.7807546,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14400,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2175541,27.9579949,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14401,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052159,27.9493475,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1441c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1683731,28.0286121,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6383686,27.8804684,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14602,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1857967,27.8471661,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1461c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015252,27.7032280,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1461f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052588,27.8920341,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1471f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2224464,27.8871202,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14803,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5953245,27.7765274,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1481f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2054090,27.8980207,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14a1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2069111,27.9140067,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14b01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2014823,27.8672075,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14c01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2069111,27.9118609,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14d1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5163817,27.6553559,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x14e1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4459577,27.6790023,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15200,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2048941,27.7857113,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15303,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2014179,27.8711987,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1541d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4657202,27.6436615,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052588,27.8956819,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15800,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052588,27.9370308,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15a00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2053447,27.8867555,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x15e01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6091433,27.6586604,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16103,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1455421,28.0770850,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16201,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2000232,27.9100585,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16701,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1955171,27.9348421,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1681c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6561785,27.8976774,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1681d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2166100,28.0465937,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16a00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2054305,27.8999090,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16b1c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6562428,27.9021621,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x16e1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6637101,27.7445555,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x17000,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5416589,27.6806760,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1711d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2069111,27.9155731,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x17303,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5860977,27.6886582,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1731e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1925559,27.8419733,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1751f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2048941,27.7850676,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1771e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4598193,27.7104378,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1791e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2051516,27.8927636,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x17d1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2051086,27.9474807,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x17e03,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1967616,27.6618361,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18003,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1717634,27.9500127,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1811e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5413799,27.6878858,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18302,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2048941,27.7903032,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1861d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015252,27.8606415,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1861f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2055807,27.8994370,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18901,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6384759,27.8675079,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18a1f,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052374,27.8961754,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18c1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2053876,27.8944159,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x18d01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6413083,27.7646613,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x19001,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6142931,27.7507782,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1921f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1928349,27.8456640,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x19a00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.0997944,27.9608488,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x19d03,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.8070259,27.9287481,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a11f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6562643,27.9072046,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a401,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1839085,27.9244995,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.6584101,27.8624225,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a51c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2050872,27.9406786,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a800,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5856042,27.6471162,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a81c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015252,27.7040648,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a91c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2051516,27.9386616,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1a91f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1954098,27.9332972,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ab1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5952172,27.7136993,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1b101,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1928992,27.8481531,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1b31f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052374,27.9455066,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1b402,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5443196,27.5562000,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1b41c,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1952381,27.7601337,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1b703,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.7092648,27.8581309,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ba03,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2014394,27.8686452,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1be1c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2013321,27.7118969,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1c11e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1928992,27.8475738,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1c31d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1954956,27.9373097,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1c500,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015681,27.8681087,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1c71f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2048726,27.7903676,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1c81e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1928992,27.8485823,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1cb1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015681,27.8663921,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ce02,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2049799,27.7835441,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1d501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4691319,27.6782942,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1d51e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2054305,27.8993511,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1d61f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2015681,27.8704262,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1d71c,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2011819,27.8677869,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1d800,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052159,27.8855324,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1da01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5940800,27.8528523,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1da1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4458933,27.5304723,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1db01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1839299,27.9252076,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1db1e,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2012463,27.8598905,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1db1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1928563,27.8472519,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1dc01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1860757,27.8722286,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1de1f,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2052588,27.9385757,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1e101,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1975555,27.8627014,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1e21f,yes,18,tourism_information,2,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2048941,27.7844238,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ea00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1715059,27.9508066,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ec1d,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2013321,27.7051377,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1f401,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1708193,28.0719352,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1f501,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.5145793,27.5918198,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1fb01,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2013750,27.7114248,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ff00,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.2054734,27.8981280,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ff11,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,42.4699044,27.4409509,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
0x1ff18,yes,18,tourism_information,1,no,,tourism=information;information=board;bgm:synthetic_icon=yes,43.1953454,27.9564929,Local-only synthetic icon: NOT a physical board. NEVER use unchanged for public OSM.
|
||||||
|
@@ -0,0 +1,264 @@
|
|||||||
|
code,count,old_tags,new_tags,synthetic_fallback,confidence,label_bg,example_lat,example_lon,example_name,note
|
||||||
|
0x200,2,garmin:legend=capital_city;place=city;capital=yes,place=city;capital=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=capital_city,yes,legend,Столица,41.0612941,28.8116670,Истанбул,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x800,51,garmin:legend=large_city;place=city,place=city;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=large_city,yes,legend,Град >75 000,43.9025259,22.2788572,Зайчар,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x900,283,garmin:legend=town;place=town,place=town;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=town,yes,legend,Град <75 000,42.0570374,24.5459247,Перущица,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0xd00,6610,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Селище,41.6287208,23.7694144,Балдево,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0xe00,114,,place=neighbourhood;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Квартал,43.9952660,22.8717756,жк. Крум Бъчваров,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1100,8430,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Населено място,42.5975990,22.5972247,Върбица,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2800,54902,,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,source-inferred,Garmin обект 0x2800,42.6277471,24.3122506,Големия поп,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2a07,227,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Спортен обект,43.8551474,25.9693837,Тирол,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2a0e,525,,shop=yes,no,uncertain,Търговски обект,42.0046806,24.8740768,Pandora,stock-tag candidate: verify in OBF
|
||||||
|
0x2b00,1558,,tourism=hotel,no,source-inferred,Garmin обект 0x2b00,42.6465440,27.6449919,Sotirovi Holiday,stock-tag candidate: verify in OBF
|
||||||
|
0x2c01,20,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2c01,42.0264173,23.9946342,Евроинс ЗАД,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2c02,538,,amenity=kindergarten,no,inferred,Детска градина,42.3479176,25.0754786,Детска градина,stock-tag candidate: verify in OBF
|
||||||
|
0x2c03,474,,amenity=community_centre,no,inferred,Читалище,43.2219315,25.7480693,читалище Съединение,stock-tag candidate: verify in OBF
|
||||||
|
0x2c05,2481,garmin:legend=school;amenity=school,amenity=school;garmin:legend=school,no,legend,Училище,41.7214394,24.6845198,СУ Олимпийски Надежди,stock-tag candidate: verify in OBF
|
||||||
|
0x2c06,57,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2c06,43.2240987,27.9363871,ТУ,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2c07,20,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2c07,43.1368518,24.7227359,Зоопарк Ловеч,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2c08,1328,,leisure=horse_riding,no,inferred,Конна база,41.9112968,24.9703360,"Конна база ""Wild City""",stock-tag candidate: verify in OBF
|
||||||
|
0x2c0b,1606,garmin:legend=church;amenity=place_of_worship,amenity=place_of_worship;garmin:legend=church,no,legend,Църква,43.0217957,24.8099613,Рождество Богородично,stock-tag candidate: verify in OBF
|
||||||
|
0x2d01,68,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2d01,42.8797030,25.3179932,ДОМ НА ХУМОРА И САТИРАТА,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2d02,434,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Търговски обект,42.1507859,24.7315550,Casa de Cuba,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2d03,57,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2d03,42.6922703,23.3241892,Ново кино,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2d09,337,,leisure=swimming_pool,no,source-inferred,Garmin обект 0x2d09,41.8625021,23.5053134,Минерален басейн Пирин,stock-tag candidate: verify in OBF
|
||||||
|
0x2e02,477,,shop=convenience,no,inferred,Хранителен магазин,41.6551137,25.5503798,Хранителни стоки,stock-tag candidate: verify in OBF
|
||||||
|
0x2e03,502,,shop=yes,no,inferred,Магазин,43.2763910,27.9675651,магазин,stock-tag candidate: verify in OBF
|
||||||
|
0x2e04,66,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2e04,42.5185919,27.4564004,Престиж,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2e05,487,garmin:legend=pharmacy;amenity=pharmacy,amenity=pharmacy;garmin:legend=pharmacy,no,legend,Аптека,42.7442837,25.3431416,Аптечка,stock-tag candidate: verify in OBF
|
||||||
|
0x2e06,348,,shop=yes,no,uncertain,Търговски обект,43.4717417,23.9467192,Trayкov Shop,stock-tag candidate: verify in OBF
|
||||||
|
0x2e07,105,garmin:legend=clothes_shop;shop=clothes,shop=clothes;garmin:legend=clothes_shop,no,legend,Магазин за дрехи,43.0698609,25.6080151,"Кооперативен пазар ""Бузлуджа""",stock-tag candidate: verify in OBF
|
||||||
|
0x2e08,13,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2e08,42.7295208,23.2671332,Практикер,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2e09,8,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2e09,43.2294202,27.8701901,мебелна палата Лазур,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2e0a,159,,shop=car,no,inferred,Автокъща,43.8517356,25.9867859,Автокъщи,stock-tag candidate: verify in OBF
|
||||||
|
0x2e0b,52,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x2e0b,42.1881008,24.3556809,Зора,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2f00,1269,,landuse=industrial;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Промишлен обект,42.9236698,24.2466116,индустриални сгради,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2f01,778,,amenity=fuel,no,inferred,Бензиностанция,41.5430832,23.2712317,Газостанция,stock-tag candidate: verify in OBF
|
||||||
|
0x2f03,106,,shop=car_repair,no,inferred,Автосервиз,41.3775158,25.0830102,"Автосервиз ""Профиров""",stock-tag candidate: verify in OBF
|
||||||
|
0x2f05,486,,amenity=post_office,no,source-inferred,Garmin обект 0x2f05,42.0306015,23.8108063,Поща,stock-tag candidate: verify in OBF
|
||||||
|
0x2f06,320,,amenity=bank,no,inferred,Банка,42.3073840,23.8596869,Банка ДСК,stock-tag candidate: verify in OBF
|
||||||
|
0x2f08,123,,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Обществен обект,42.6397204,23.3731771,Акад. Александър Теодоров - Балан,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2f0a,4,garmin:legend=synagogue;amenity=place_of_worship;religion=jewish,amenity=place_of_worship;religion=jewish;garmin:legend=synagogue,no,legend,Синагога,41.5711713,23.7286234,Синагога,stock-tag candidate: verify in OBF
|
||||||
|
0x2f0b,1499,,leisure=track;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Тренировъчна площадка,43.7308860,23.9443588,автополигон,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x2f0c,320,garmin:legend=mosque;amenity=place_of_worship;religion=muslim,amenity=place_of_worship;religion=muslim;garmin:legend=mosque,no,legend,Джамия,44.0549612,26.7991304,Джамия,stock-tag candidate: verify in OBF
|
||||||
|
0x2f0e,4,garmin:legend=car_wash;amenity=car_wash,amenity=car_wash;garmin:legend=car_wash,no,legend,Автомивка,42.2939301,22.7035904,Олимпия,stock-tag candidate: verify in OBF
|
||||||
|
0x3001,170,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x3001,43.3623934,25.1447439,полиция,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x3002,564,,emergency=first_aid,no,inferred,Първа помощ,42.5638032,27.6036644,First Aid,stock-tag candidate: verify in OBF
|
||||||
|
0x3003,841,,amenity=townhall,no,inferred,Кметство,43.2501698,27.7748966,Кметство,stock-tag candidate: verify in OBF
|
||||||
|
0x3006,85,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x3006,43.7391043,28.5608482,ГКПП Вама Веке,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x3007,132,,man_made=pumping_station;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Помпена станция,43.2023406,25.7318473,Помпена ст.,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x3008,37,garmin:legend=fire_station;amenity=fire_station,amenity=fire_station;garmin:legend=fire_station,no,legend,Пожарна,42.5666571,27.6193285,Пожарна,stock-tag candidate: verify in OBF
|
||||||
|
0x4700,101,garmin:legend=port;industrial=port,industrial=port;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=port,yes,legend,Пристанище,41.6431189,25.2845192,Пристан,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x4e00,14,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x4e00,41.9877291,24.0870094,Минерална баня,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6400,465,garmin:legend=quarry;landuse=quarry,landuse=quarry;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=quarry,yes,legend,Кариера,40.8776808,23.9436078,(Кам.),presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6401,1679,garmin:legend=bridge;man_made=bridge,man_made=bridge;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bridge,yes,legend,Мост,42.6645684,22.9691291,Зидан мост,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6402,6186,garmin:legend=building;building=yes,building=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=building,yes,legend,Сграда,42.5507569,23.2217932,Чакало,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6403,1729,garmin:legend=graveyard_tombstone,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,yes,legend,Гробище,43.0418801,23.5914874,Св. Мария Магдалена,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6404,1507,garmin:legend=church;amenity=place_of_worship,amenity=place_of_worship;garmin:legend=church,no,legend,Църква,42.1896243,27.0861053,Св. Димитър,stock-tag candidate: verify in OBF
|
||||||
|
0x6405,260,garmin:legend=hunting_lodge,building=hut;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=hunting_lodge,yes,legend,Ловна хижа,42.7514720,27.2207522,заслон Зайчар,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6406,854,garmin:legend=barrier_gate;barrier=gate,barrier=gate;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=barrier_gate,yes,legend,Бариера,41.5502286,24.7455668,Военен обект!,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6407,2861,garmin:legend=picnic_site;tourism=picnic_site,tourism=picnic_site;garmin:legend=picnic_site,no,legend,Пикник,41.9156528,25.3233576,беседка,stock-tag candidate: verify in OBF
|
||||||
|
0x6408,12,garmin:legend=mountain_rescue;emergency=mountain_rescue,emergency=mountain_rescue;garmin:legend=mountain_rescue,no,legend,ПСС,42.6026416,23.2414269,ПСС бунгало,stock-tag candidate: verify in OBF
|
||||||
|
0x6409,1235,garmin:legend=monument;historic=monument,historic=monument;garmin:legend=monument,no,legend,Паметник,43.1282043,23.6027098,Перо Херцеговинеца,stock-tag candidate: verify in OBF
|
||||||
|
0x640a,2095,garmin:legend=danger,hazard=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=danger,yes,legend,Опасност,43.1507993,25.3284001,Стълба,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x640b,1128,garmin:legend=chapel;amenity=place_of_worship,amenity=place_of_worship;garmin:legend=chapel,no,legend,Параклис,41.9598985,24.3688774,Параклис,stock-tag candidate: verify in OBF
|
||||||
|
0x640c,1353,garmin:legend=mine_shaft;man_made=mine_shaft,man_made=mine_shaft;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mine_shaft,yes,legend,Мина,43.0497336,22.9328442,(Въгл.),presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x640d,137,garmin:legend=lift,aerialway=station;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=lift,yes,legend,Лифт,42.6056242,23.2995987,Драгалевски междинна,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x640e,977,garmin:legend=bus_stop_station;highway=bus_stop,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,yes,legend,Спирка,43.3513427,25.1430917,Левски,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x640f,2766,garmin:legend=graveyard_tombstone,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,yes,legend,Гробище,42.0345068,22.4919534,Гробище,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6410,98,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x6410,43.6105728,23.6852574,МВЕЦ „ Елена“,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6411,875,garmin:legend=tower;man_made=tower,man_made=tower;garmin:legend=tower,no,legend,Кула,41.7411375,24.8182654,GSM клетка,stock-tag candidate: verify in OBF
|
||||||
|
0x6413,76,garmin:legend=tunnel,tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=tunnel,yes,legend,Тунел,42.6872063,23.3418703,Подлез,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6414,32922,garmin:legend=drinking_water;amenity=drinking_water,amenity=drinking_water;garmin:legend=drinking_water,no,legend,Вода - Чешма,43.1117034,23.7205982,затлачена,stock-tag candidate: verify in OBF
|
||||||
|
0x6415,264,garmin:legend=camp_site;tourism=camp_site,tourism=camp_site;garmin:legend=camp_site,no,legend,Място за бивакуване,41.7506647,25.1023221,Бивак,stock-tag candidate: verify in OBF
|
||||||
|
0x6416,2886,garmin:legend=ruins;historic=ruins,historic=ruins;garmin:legend=ruins,no,legend,Руини,41.5940452,24.3094182,Разв.,stock-tag candidate: verify in OBF
|
||||||
|
0x6417,8868,garmin:legend=well;man_made=water_well,man_made=water_well;garmin:legend=well,no,legend,Вода - Кладенец,42.2628808,24.2223430,Юсеиновия кладенец,stock-tag candidate: verify in OBF
|
||||||
|
0x6418,305,,power=generator;generator:source=wind;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Вятърен генератор,42.7693677,26.3003898,Ветрогенератор,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6419,113,,power=generator;generator:source=solar;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Фотоволтаична централа,42.5478601,26.7053819,Фотоволтаична ценрала,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x641a,62,garmin:legend=church;amenity=place_of_worship,amenity=place_of_worship;garmin:legend=church,no,legend,Църква,42.9599547,23.0566549,Св. Никола,stock-tag candidate: verify in OBF
|
||||||
|
0x641c,3120,garmin:legend=bus_stop_station;highway=bus_stop,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,yes,legend,Спирка,42.8542113,25.3382707,1-7-10-14,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x641d,17,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x641d,42.1828008,24.7408462,ТЕЦ „Пловдив Север“,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x641e,55,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x641e,42.3201728,24.3003416,Соларен Парк Солсбор,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x641f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x641f,43.7468505,23.7692428,АЕЦ Козлодуй,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6500,31214,garmin:legend=reservoir,man_made=water_intake;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=reservoir,yes,legend,Вода - Каптаж,42.0310307,24.7559094,Забучена,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6501,2412,garmin:legend=restaurant;amenity=restaurant,amenity=restaurant;garmin:legend=restaurant,no,legend,Ресторант,43.3456135,28.0715060,Therma beach,stock-tag candidate: verify in OBF
|
||||||
|
0x6502,1864,garmin:legend=river_passage,ford=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=river_passage,yes,legend,Речен брод,42.7929711,25.2992177,Бент,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6503,760,garmin:legend=crossroad,bgm:trail_junction=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=crossroad,yes,legend,Кръстопът,43.4149003,28.4942007,на запад Черноморски път,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6506,424,garmin:legend=museum;tourism=museum,tourism=museum;garmin:legend=museum,no,legend,Музей,42.1463013,24.7487855,Градска художествена галерия,stock-tag candidate: verify in OBF
|
||||||
|
0x650b,8767,garmin:legend=winter_marking,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=winter_marking,yes,legend,Зимна маркировка,42.0000887,23.3820820,94,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6511,50308,garmin:legend=spring;natural=spring,natural=spring;garmin:legend=spring,no,legend,Вода - Извор,42.8732872,23.3371925,Студена вода,stock-tag candidate: verify in OBF
|
||||||
|
0x6600,66206,garmin:legend=triangulation,bgm:spot_height=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=triangulation,yes,legend-ambiguous,Височинна кота,41.2312603,22.6785922,217,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6601,165,garmin:legend=natural_phenomenon,bgm:landmark=natural_phenomenon;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=natural_phenomenon,yes,legend,Природен феномен,42.9589677,25.2119064,"скален феномен ""Момичките""",presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6602,891,garmin:legend=viewpoint;tourism=viewpoint,tourism=viewpoint;garmin:legend=viewpoint,no,legend,Панорама - Гледка,41.7438412,23.4641790,Кьошка (Балконе)-панорама,stock-tag candidate: verify in OBF
|
||||||
|
0x6603,26366,garmin:legend=triangulation;man_made=survey_point,man_made=survey_point;garmin:legend=triangulation,no,legend,Триангулачна точка,42.5520873,23.8540435,1079,stock-tag candidate: verify in OBF
|
||||||
|
0x6604,10,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x6604,42.2186995,27.7872348,"Къмпинг ""Юг""",presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6608,2644,garmin:legend=hotel;tourism=hotel,tourism=hotel;garmin:legend=hotel,no,legend,Хотел,42.8794885,27.8957462,Fortuna Cape Complex,stock-tag candidate: verify in OBF
|
||||||
|
0x6609,372,garmin:legend=hut;tourism=alpine_hut,tourism=alpine_hut;garmin:legend=hut,no,legend,Хижа,43.2779145,27.1159101,Хижа Мадарски конник,stock-tag candidate: verify in OBF
|
||||||
|
0x660a,275,garmin:legend=refuge;amenity=shelter;shelter_type=basic_hut,amenity=shelter;shelter_type=basic_hut;garmin:legend=refuge,no,legend,Заслон,42.8157377,23.8160634,Заслон,stock-tag candidate: verify in OBF
|
||||||
|
0x660b,2612,garmin:legend=mark,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mark,yes,legend,Туристическа маркировка,43.9378452,22.4072385,Пир. 454,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x660c,94,,natural=saddle,no,source-inferred,Garmin обект 0x660c,43.6241341,22.4983478,Кадъбоаз,stock-tag candidate: verify in OBF
|
||||||
|
0x660d,8,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x660d,42.6904893,23.4124017,Летище София,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x660e,8,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x660e,43.4520006,24.5126653,Авиобаза Долна Митрополия,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x660f,44,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unknown,Garmin обект 0x660f,42.6426816,26.3592696,Летище Сливен,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6610,15,garmin:legend=meadow,tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=meadow,yes,legend,Поляна,42.8212094,26.1542845,Агликина поляна,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6613,1746,garmin:legend=waterfall;waterway=waterfall,waterway=waterfall;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=waterfall,yes,legend,Водопад,42.7435327,24.6398234,Кастрак дере горен,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6614,15289,garmin:legend=rock,natural=rock;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=rock,yes,legend,Скала,42.7437901,25.2693915,15,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x6615,942,garmin:legend=cave;natural=cave_entrance,natural=cave_entrance;garmin:legend=cave,no,legend,Пещера,41.8003178,23.3853436,Дупка,stock-tag candidate: verify in OBF
|
||||||
|
0x6616,15540,,natural=peak,no,verified,Връх,42.8516150,25.7782173,Симов чукар,stock-tag candidate: verify in OBF
|
||||||
|
0x6617,112,garmin:legend=peak;natural=peak,natural=peak;garmin:legend=peak,no,legend,Връх,41.7893529,22.9647946,Огреяк (Кадийца) (1924),stock-tag candidate: verify in OBF
|
||||||
|
0x6618,10176,garmin:legend=tree;natural=tree,natural=tree;garmin:legend=tree,no,legend,Дърво,42.7752686,23.9033318,столетно дърво,stock-tag candidate: verify in OBF
|
||||||
|
0x6619,195,garmin:legend=prehistoric_site;historic=archaeological_site,historic=archaeological_site;garmin:legend=prehistoric_site,no,legend,Праисторически обект,42.5703692,25.3767228,Бащин камък (Слънчева врата),stock-tag candidate: verify in OBF
|
||||||
|
0x661a,384,garmin:legend=antiquity_site;historic=archaeological_site,historic=archaeological_site;garmin:legend=antiquity_site,no,legend,Античен обект,41.7153454,26.0307527,Тракийска крепост Курт кале,stock-tag candidate: verify in OBF
|
||||||
|
0x661b,319,garmin:legend=medieval_site;historic=archaeological_site,historic=archaeological_site;garmin:legend=medieval_site,no,legend,Средновековен обект,42.0922279,24.2505813,"Средновековен манастир ""Св. Седмочиленици""",stock-tag candidate: verify in OBF
|
||||||
|
0x661c,1169,,bgm:landmark=mound;tourism=information;information=board;bgm:synthetic_icon=yes,yes,uncertain,Могила,41.8346500,26.4578676,Койчовата могила,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x661d,1412,,building=agricultural;tourism=information;information=board;bgm:synthetic_icon=yes,yes,inferred,Стопанска постройка,41.1914778,24.0922236,Овчарник,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x661e,979,,amenity=shelter,no,source-inferred,Garmin обект 0x661e,41.4122772,24.8197031,Навес с барбекю,stock-tag candidate: verify in OBF
|
||||||
|
0x10000,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10000,43.1772995,27.7539325,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10018,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10018,43.1856465,27.9490042,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10100,12,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10100,42.4783373,27.4493837,LFl 4.5s W 4M,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10118,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10118,43.1870842,27.6683164,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1011e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1011e,42.5841022,27.6902461,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10204,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10204,42.6573801,27.7476025,Fl(3) W 10s,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10205,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10205,42.4590254,27.5740099,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10209,8,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10209,42.4733591,27.4699187,Fl 3s,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1020a,9,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1020a,42.4602699,27.4538684,G,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1020b,5,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1020b,41.8699050,28.0232477,Fl(2) 6s,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1020c,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1020c,43.1899381,27.8013968,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10218,3,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10218,42.0534110,27.9847956,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10301,2006,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10301,43.4377956,28.9283538,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10401,157,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10401,42.6565218,27.7297497,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10402,41,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10402,43.2109666,28.1308579,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10403,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10403,41.3038731,28.7996078,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1040d,229,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1040d,41.9180989,28.0489111,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1040e,4,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1040e,42.8295565,27.9202938,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1041e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1041e,42.6499343,27.8320599,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10501,43.2052803,27.9446054,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10602,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10602,42.7095008,27.8530884,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1061d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1061d,43.2051730,27.9395843,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10701,58,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10701,43.1964397,27.8618217,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10705,33,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10705,43.2224250,28.1217384,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10706,32,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10706,43.4509492,28.8183832,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10801,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10801,42.8644896,27.9285121,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10903,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10903,42.6283908,27.6877141,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10a01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10a01,43.2014394,27.8667355,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10b01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10b01,41.8894100,28.0229688,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10b09,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10b09,43.2140994,27.9750752,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10c00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10c00,43.2016969,27.9050374,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x10d01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x10d01,43.2011819,27.8610492,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1161f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1161f,43.1953883,27.9319453,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1171e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1171e,43.2054305,27.8968406,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1181f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1181f,43.2013321,27.7061892,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x11901,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x11901,43.8046575,28.5944295,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x11902,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x11902,43.2049370,27.7813983,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x11a02,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x11a02,43.1968260,27.6557207,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1201f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1201f,42.5242352,27.5483894,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12102,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12102,42.4892378,27.5353217,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12502,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12502,43.2015038,27.8690314,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12a03,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12a03,42.6277685,27.7115536,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12c1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12c1e,43.2013321,27.7046227,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12d01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12d01,43.1838441,27.9260015,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x12e1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x12e1f,43.2423377,28.1846094,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x13001,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x13001,43.1683517,28.0398345,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1321f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1321f,42.6127267,27.8121257,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1331f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1331f,43.2015467,27.8662419,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x13400,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x13400,43.1861830,27.9269886,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x13a01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x13a01,42.5860548,27.6915121,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x13c03,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x13c03,42.4661279,27.6418805,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x13d1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x13d1e,43.2068896,27.9138136,я припек,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1411e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1411e,43.2047009,27.7807546,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14400,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14400,43.2175541,27.9579949,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14401,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14401,43.2052159,27.9493475,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1441c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1441c,43.1683731,28.0286121,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14501,42.6383686,27.8804684,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14602,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14602,43.1857967,27.8471661,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1461c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1461c,43.2015252,27.7032280,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1461f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1461f,43.2052588,27.8920341,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1471f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1471f,43.2224464,27.8871202,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14803,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14803,42.5953245,27.7765274,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1481f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1481f,43.2054090,27.8980207,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14a1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14a1e,43.2069111,27.9140067,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14b01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14b01,43.2014823,27.8672075,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14c01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14c01,43.2069111,27.9118609,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14d1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14d1f,42.5163817,27.6553559,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x14e1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x14e1e,42.4459577,27.6790023,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15200,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15200,43.2048941,27.7857113,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15303,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15303,43.2014179,27.8711987,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1541d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1541d,42.4657202,27.6436615,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15501,43.2052588,27.8956819,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15800,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15800,43.2052588,27.9370308,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15a00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15a00,43.2053447,27.8867555,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x15e01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x15e01,42.6091433,27.6586604,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16103,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16103,43.1455421,28.0770850,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16201,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16201,43.2000232,27.9100585,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16701,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16701,43.1955171,27.9348421,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1681c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1681c,42.6561785,27.8976774,Тюлен,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1681d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1681d,43.2166100,28.0465937,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16a00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16a00,43.2054305,27.8999090,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16b1c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16b1c,42.6562428,27.9021621,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x16e1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x16e1f,42.6637101,27.7445555,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x17000,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x17000,42.5416589,27.6806760,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1711d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1711d,43.2069111,27.9155731,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x17303,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x17303,42.5860977,27.6886582,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1731e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1731e,43.1925559,27.8419733,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1751f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1751f,43.2048941,27.7850676,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1771e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1771e,42.4598193,27.7104378,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1791e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1791e,43.2051516,27.8927636,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x17d1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x17d1e,43.2051086,27.9474807,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x17e03,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x17e03,43.1967616,27.6618361,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18003,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18003,43.1717634,27.9500127,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1811e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1811e,42.5413799,27.6878858,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18302,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18302,43.2048941,27.7903032,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1861d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1861d,43.2015252,27.8606415,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1861f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1861f,43.2055807,27.8994370,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18901,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18901,42.6384759,27.8675079,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18a1f,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18a1f,43.2052374,27.8961754,ставена,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18c1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18c1e,43.2053876,27.8944159,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x18d01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x18d01,42.6413083,27.7646613,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x19001,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x19001,42.6142931,27.7507782,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1921f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1921f,43.1928349,27.8456640,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x19a00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x19a00,43.0997944,27.9608488,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x19d03,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x19d03,42.8070259,27.9287481,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a11f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a11f,42.6562643,27.9072046,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a401,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a401,43.1839085,27.9244995,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a501,42.6584101,27.8624225,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a51c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a51c,43.2050872,27.9406786,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a800,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a800,42.5856042,27.6471162,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a81c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a81c,43.2015252,27.7040648,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a91c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a91c,43.2051516,27.9386616,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1a91f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1a91f,43.1954098,27.9332972,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ab1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ab1f,42.5952172,27.7136993,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1b101,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1b101,43.1928992,27.8481531,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1b31f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1b31f,43.2052374,27.9455066,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1b402,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1b402,42.5443196,27.5562000,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1b41c,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1b41c,43.1952381,27.7601337,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1b703,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1b703,42.7092648,27.8581309,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ba03,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ba03,43.2014394,27.8686452,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1be1c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1be1c,43.2013321,27.7118969,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1c11e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1c11e,43.1928992,27.8475738,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1c31d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1c31d,43.1954956,27.9373097,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1c500,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1c500,43.2015681,27.8681087,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1c71f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1c71f,43.2048726,27.7903676,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1c81e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1c81e,43.1928992,27.8485823,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1cb1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1cb1f,43.2015681,27.8663921,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ce02,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ce02,43.2049799,27.7835441,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1d501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1d501,42.4691319,27.6782942,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1d51e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1d51e,43.2054305,27.8993511,вец,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1d61f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1d61f,43.2015681,27.8704262,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1d71c,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1d71c,43.2011819,27.8677869,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1d800,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1d800,43.2052159,27.8855324,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1da01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1da01,42.5940800,27.8528523,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1da1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1da1e,42.4458933,27.5304723,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1db01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1db01,43.1839299,27.9252076,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1db1e,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1db1e,43.2012463,27.8598905,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1db1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1db1f,43.1928563,27.8472519,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1dc01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1dc01,43.1860757,27.8722286,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1de1f,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1de1f,43.2052588,27.9385757,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1e101,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1e101,43.1975555,27.8627014,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1e21f,2,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1e21f,43.2048941,27.7844238,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ea00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ea00,43.1715059,27.9508066,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ec1d,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ec1d,43.2013321,27.7051377,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1f401,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1f401,43.1708193,28.0719352,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1f501,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1f501,42.5145793,27.5918198,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1fb01,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1fb01,43.2013750,27.7114248,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ff00,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ff00,43.2054734,27.8981280,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ff11,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ff11,42.4699044,27.4409509,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
0x1ff18,1,,tourism=information;information=board;bgm:synthetic_icon=yes,yes,unverified-extended,Garmin обект 0x1ff18,43.1953454,27.9564929,,presentation compatibility: cannot guarantee draw at every zoom
|
||||||
|
@@ -0,0 +1,264 @@
|
|||||||
|
code,label_bg,confidence
|
||||||
|
0x200,Столица,legend
|
||||||
|
0x800,Град >75 000,legend
|
||||||
|
0x900,Град <75 000,legend
|
||||||
|
0xd00,Селище,uncertain
|
||||||
|
0xe00,Квартал,uncertain
|
||||||
|
0x1100,Населено място,uncertain
|
||||||
|
0x2800,Garmin обект 0x2800,source-inferred
|
||||||
|
0x2a07,Спортен обект,uncertain
|
||||||
|
0x2a0e,Търговски обект,uncertain
|
||||||
|
0x2b00,Garmin обект 0x2b00,source-inferred
|
||||||
|
0x2c01,Garmin обект 0x2c01,unknown
|
||||||
|
0x2c02,Детска градина,inferred
|
||||||
|
0x2c03,Читалище,inferred
|
||||||
|
0x2c05,Училище,legend
|
||||||
|
0x2c06,Garmin обект 0x2c06,unknown
|
||||||
|
0x2c07,Garmin обект 0x2c07,unknown
|
||||||
|
0x2c08,Конна база,inferred
|
||||||
|
0x2c0b,Църква,legend
|
||||||
|
0x2d01,Garmin обект 0x2d01,unknown
|
||||||
|
0x2d02,Търговски обект,uncertain
|
||||||
|
0x2d03,Garmin обект 0x2d03,unknown
|
||||||
|
0x2d09,Garmin обект 0x2d09,source-inferred
|
||||||
|
0x2e02,Хранителен магазин,inferred
|
||||||
|
0x2e03,Магазин,inferred
|
||||||
|
0x2e04,Garmin обект 0x2e04,unknown
|
||||||
|
0x2e05,Аптека,legend
|
||||||
|
0x2e06,Търговски обект,uncertain
|
||||||
|
0x2e07,Магазин за дрехи,legend
|
||||||
|
0x2e08,Garmin обект 0x2e08,unknown
|
||||||
|
0x2e09,Garmin обект 0x2e09,unknown
|
||||||
|
0x2e0a,Автокъща,inferred
|
||||||
|
0x2e0b,Garmin обект 0x2e0b,unknown
|
||||||
|
0x2f00,Промишлен обект,inferred
|
||||||
|
0x2f01,Бензиностанция,inferred
|
||||||
|
0x2f03,Автосервиз,inferred
|
||||||
|
0x2f05,Garmin обект 0x2f05,source-inferred
|
||||||
|
0x2f06,Банка,inferred
|
||||||
|
0x2f08,Обществен обект,uncertain
|
||||||
|
0x2f0a,Синагога,legend
|
||||||
|
0x2f0b,Тренировъчна площадка,inferred
|
||||||
|
0x2f0c,Джамия,legend
|
||||||
|
0x2f0e,Автомивка,legend
|
||||||
|
0x3001,Garmin обект 0x3001,unknown
|
||||||
|
0x3002,Първа помощ,inferred
|
||||||
|
0x3003,Кметство,inferred
|
||||||
|
0x3006,Garmin обект 0x3006,unknown
|
||||||
|
0x3007,Помпена станция,inferred
|
||||||
|
0x3008,Пожарна,legend
|
||||||
|
0x4700,Пристанище,legend
|
||||||
|
0x4e00,Garmin обект 0x4e00,unknown
|
||||||
|
0x6400,Кариера,legend
|
||||||
|
0x6401,Мост,legend
|
||||||
|
0x6402,Сграда,legend
|
||||||
|
0x6403,Гробище,legend
|
||||||
|
0x6404,Църква,legend
|
||||||
|
0x6405,Ловна хижа,legend
|
||||||
|
0x6406,Бариера,legend
|
||||||
|
0x6407,Пикник,legend
|
||||||
|
0x6408,ПСС,legend
|
||||||
|
0x6409,Паметник,legend
|
||||||
|
0x640a,Опасност,legend
|
||||||
|
0x640b,Параклис,legend
|
||||||
|
0x640c,Мина,legend
|
||||||
|
0x640d,Лифт,legend
|
||||||
|
0x640e,Спирка,legend
|
||||||
|
0x640f,Гробище,legend
|
||||||
|
0x6410,Garmin обект 0x6410,unknown
|
||||||
|
0x6411,Кула,legend
|
||||||
|
0x6413,Тунел,legend
|
||||||
|
0x6414,Вода - Чешма,legend
|
||||||
|
0x6415,Място за бивакуване,legend
|
||||||
|
0x6416,Руини,legend
|
||||||
|
0x6417,Вода - Кладенец,legend
|
||||||
|
0x6418,Вятърен генератор,inferred
|
||||||
|
0x6419,Фотоволтаична централа,inferred
|
||||||
|
0x641a,Църква,legend
|
||||||
|
0x641c,Спирка,legend
|
||||||
|
0x641d,Garmin обект 0x641d,unknown
|
||||||
|
0x641e,Garmin обект 0x641e,unknown
|
||||||
|
0x641f,Garmin обект 0x641f,unknown
|
||||||
|
0x6500,Вода - Каптаж,legend
|
||||||
|
0x6501,Ресторант,legend
|
||||||
|
0x6502,Речен брод,legend
|
||||||
|
0x6503,Кръстопът,legend
|
||||||
|
0x6506,Музей,legend
|
||||||
|
0x650b,Зимна маркировка,legend
|
||||||
|
0x6511,Вода - Извор,legend
|
||||||
|
0x6600,Височинна кота,legend-ambiguous
|
||||||
|
0x6601,Природен феномен,legend
|
||||||
|
0x6602,Панорама - Гледка,legend
|
||||||
|
0x6603,Триангулачна точка,legend
|
||||||
|
0x6604,Garmin обект 0x6604,unknown
|
||||||
|
0x6608,Хотел,legend
|
||||||
|
0x6609,Хижа,legend
|
||||||
|
0x660a,Заслон,legend
|
||||||
|
0x660b,Туристическа маркировка,legend
|
||||||
|
0x660c,Garmin обект 0x660c,source-inferred
|
||||||
|
0x660d,Garmin обект 0x660d,unknown
|
||||||
|
0x660e,Garmin обект 0x660e,unknown
|
||||||
|
0x660f,Garmin обект 0x660f,unknown
|
||||||
|
0x6610,Поляна,legend
|
||||||
|
0x6613,Водопад,legend
|
||||||
|
0x6614,Скала,legend
|
||||||
|
0x6615,Пещера,legend
|
||||||
|
0x6616,Връх,verified
|
||||||
|
0x6617,Връх,legend
|
||||||
|
0x6618,Дърво,legend
|
||||||
|
0x6619,Праисторически обект,legend
|
||||||
|
0x661a,Античен обект,legend
|
||||||
|
0x661b,Средновековен обект,legend
|
||||||
|
0x661c,Могила,uncertain
|
||||||
|
0x661d,Стопанска постройка,inferred
|
||||||
|
0x661e,Garmin обект 0x661e,source-inferred
|
||||||
|
0x10000,Garmin обект 0x10000,unverified-extended
|
||||||
|
0x10018,Garmin обект 0x10018,unverified-extended
|
||||||
|
0x10100,Garmin обект 0x10100,unverified-extended
|
||||||
|
0x10118,Garmin обект 0x10118,unverified-extended
|
||||||
|
0x1011e,Garmin обект 0x1011e,unverified-extended
|
||||||
|
0x10204,Garmin обект 0x10204,unverified-extended
|
||||||
|
0x10205,Garmin обект 0x10205,unverified-extended
|
||||||
|
0x10209,Garmin обект 0x10209,unverified-extended
|
||||||
|
0x1020a,Garmin обект 0x1020a,unverified-extended
|
||||||
|
0x1020b,Garmin обект 0x1020b,unverified-extended
|
||||||
|
0x1020c,Garmin обект 0x1020c,unverified-extended
|
||||||
|
0x10218,Garmin обект 0x10218,unverified-extended
|
||||||
|
0x10301,Garmin обект 0x10301,unverified-extended
|
||||||
|
0x10401,Garmin обект 0x10401,unverified-extended
|
||||||
|
0x10402,Garmin обект 0x10402,unverified-extended
|
||||||
|
0x10403,Garmin обект 0x10403,unverified-extended
|
||||||
|
0x1040d,Garmin обект 0x1040d,unverified-extended
|
||||||
|
0x1040e,Garmin обект 0x1040e,unverified-extended
|
||||||
|
0x1041e,Garmin обект 0x1041e,unverified-extended
|
||||||
|
0x10501,Garmin обект 0x10501,unverified-extended
|
||||||
|
0x10602,Garmin обект 0x10602,unverified-extended
|
||||||
|
0x1061d,Garmin обект 0x1061d,unverified-extended
|
||||||
|
0x10701,Garmin обект 0x10701,unverified-extended
|
||||||
|
0x10705,Garmin обект 0x10705,unverified-extended
|
||||||
|
0x10706,Garmin обект 0x10706,unverified-extended
|
||||||
|
0x10801,Garmin обект 0x10801,unverified-extended
|
||||||
|
0x10903,Garmin обект 0x10903,unverified-extended
|
||||||
|
0x10a01,Garmin обект 0x10a01,unverified-extended
|
||||||
|
0x10b01,Garmin обект 0x10b01,unverified-extended
|
||||||
|
0x10b09,Garmin обект 0x10b09,unverified-extended
|
||||||
|
0x10c00,Garmin обект 0x10c00,unverified-extended
|
||||||
|
0x10d01,Garmin обект 0x10d01,unverified-extended
|
||||||
|
0x1161f,Garmin обект 0x1161f,unverified-extended
|
||||||
|
0x1171e,Garmin обект 0x1171e,unverified-extended
|
||||||
|
0x1181f,Garmin обект 0x1181f,unverified-extended
|
||||||
|
0x11901,Garmin обект 0x11901,unverified-extended
|
||||||
|
0x11902,Garmin обект 0x11902,unverified-extended
|
||||||
|
0x11a02,Garmin обект 0x11a02,unverified-extended
|
||||||
|
0x1201f,Garmin обект 0x1201f,unverified-extended
|
||||||
|
0x12102,Garmin обект 0x12102,unverified-extended
|
||||||
|
0x12502,Garmin обект 0x12502,unverified-extended
|
||||||
|
0x12a03,Garmin обект 0x12a03,unverified-extended
|
||||||
|
0x12c1e,Garmin обект 0x12c1e,unverified-extended
|
||||||
|
0x12d01,Garmin обект 0x12d01,unverified-extended
|
||||||
|
0x12e1f,Garmin обект 0x12e1f,unverified-extended
|
||||||
|
0x13001,Garmin обект 0x13001,unverified-extended
|
||||||
|
0x1321f,Garmin обект 0x1321f,unverified-extended
|
||||||
|
0x1331f,Garmin обект 0x1331f,unverified-extended
|
||||||
|
0x13400,Garmin обект 0x13400,unverified-extended
|
||||||
|
0x13a01,Garmin обект 0x13a01,unverified-extended
|
||||||
|
0x13c03,Garmin обект 0x13c03,unverified-extended
|
||||||
|
0x13d1e,Garmin обект 0x13d1e,unverified-extended
|
||||||
|
0x1411e,Garmin обект 0x1411e,unverified-extended
|
||||||
|
0x14400,Garmin обект 0x14400,unverified-extended
|
||||||
|
0x14401,Garmin обект 0x14401,unverified-extended
|
||||||
|
0x1441c,Garmin обект 0x1441c,unverified-extended
|
||||||
|
0x14501,Garmin обект 0x14501,unverified-extended
|
||||||
|
0x14602,Garmin обект 0x14602,unverified-extended
|
||||||
|
0x1461c,Garmin обект 0x1461c,unverified-extended
|
||||||
|
0x1461f,Garmin обект 0x1461f,unverified-extended
|
||||||
|
0x1471f,Garmin обект 0x1471f,unverified-extended
|
||||||
|
0x14803,Garmin обект 0x14803,unverified-extended
|
||||||
|
0x1481f,Garmin обект 0x1481f,unverified-extended
|
||||||
|
0x14a1e,Garmin обект 0x14a1e,unverified-extended
|
||||||
|
0x14b01,Garmin обект 0x14b01,unverified-extended
|
||||||
|
0x14c01,Garmin обект 0x14c01,unverified-extended
|
||||||
|
0x14d1f,Garmin обект 0x14d1f,unverified-extended
|
||||||
|
0x14e1e,Garmin обект 0x14e1e,unverified-extended
|
||||||
|
0x15200,Garmin обект 0x15200,unverified-extended
|
||||||
|
0x15303,Garmin обект 0x15303,unverified-extended
|
||||||
|
0x1541d,Garmin обект 0x1541d,unverified-extended
|
||||||
|
0x15501,Garmin обект 0x15501,unverified-extended
|
||||||
|
0x15800,Garmin обект 0x15800,unverified-extended
|
||||||
|
0x15a00,Garmin обект 0x15a00,unverified-extended
|
||||||
|
0x15e01,Garmin обект 0x15e01,unverified-extended
|
||||||
|
0x16103,Garmin обект 0x16103,unverified-extended
|
||||||
|
0x16201,Garmin обект 0x16201,unverified-extended
|
||||||
|
0x16701,Garmin обект 0x16701,unverified-extended
|
||||||
|
0x1681c,Garmin обект 0x1681c,unverified-extended
|
||||||
|
0x1681d,Garmin обект 0x1681d,unverified-extended
|
||||||
|
0x16a00,Garmin обект 0x16a00,unverified-extended
|
||||||
|
0x16b1c,Garmin обект 0x16b1c,unverified-extended
|
||||||
|
0x16e1f,Garmin обект 0x16e1f,unverified-extended
|
||||||
|
0x17000,Garmin обект 0x17000,unverified-extended
|
||||||
|
0x1711d,Garmin обект 0x1711d,unverified-extended
|
||||||
|
0x17303,Garmin обект 0x17303,unverified-extended
|
||||||
|
0x1731e,Garmin обект 0x1731e,unverified-extended
|
||||||
|
0x1751f,Garmin обект 0x1751f,unverified-extended
|
||||||
|
0x1771e,Garmin обект 0x1771e,unverified-extended
|
||||||
|
0x1791e,Garmin обект 0x1791e,unverified-extended
|
||||||
|
0x17d1e,Garmin обект 0x17d1e,unverified-extended
|
||||||
|
0x17e03,Garmin обект 0x17e03,unverified-extended
|
||||||
|
0x18003,Garmin обект 0x18003,unverified-extended
|
||||||
|
0x1811e,Garmin обект 0x1811e,unverified-extended
|
||||||
|
0x18302,Garmin обект 0x18302,unverified-extended
|
||||||
|
0x1861d,Garmin обект 0x1861d,unverified-extended
|
||||||
|
0x1861f,Garmin обект 0x1861f,unverified-extended
|
||||||
|
0x18901,Garmin обект 0x18901,unverified-extended
|
||||||
|
0x18a1f,Garmin обект 0x18a1f,unverified-extended
|
||||||
|
0x18c1e,Garmin обект 0x18c1e,unverified-extended
|
||||||
|
0x18d01,Garmin обект 0x18d01,unverified-extended
|
||||||
|
0x19001,Garmin обект 0x19001,unverified-extended
|
||||||
|
0x1921f,Garmin обект 0x1921f,unverified-extended
|
||||||
|
0x19a00,Garmin обект 0x19a00,unverified-extended
|
||||||
|
0x19d03,Garmin обект 0x19d03,unverified-extended
|
||||||
|
0x1a11f,Garmin обект 0x1a11f,unverified-extended
|
||||||
|
0x1a401,Garmin обект 0x1a401,unverified-extended
|
||||||
|
0x1a501,Garmin обект 0x1a501,unverified-extended
|
||||||
|
0x1a51c,Garmin обект 0x1a51c,unverified-extended
|
||||||
|
0x1a800,Garmin обект 0x1a800,unverified-extended
|
||||||
|
0x1a81c,Garmin обект 0x1a81c,unverified-extended
|
||||||
|
0x1a91c,Garmin обект 0x1a91c,unverified-extended
|
||||||
|
0x1a91f,Garmin обект 0x1a91f,unverified-extended
|
||||||
|
0x1ab1f,Garmin обект 0x1ab1f,unverified-extended
|
||||||
|
0x1b101,Garmin обект 0x1b101,unverified-extended
|
||||||
|
0x1b31f,Garmin обект 0x1b31f,unverified-extended
|
||||||
|
0x1b402,Garmin обект 0x1b402,unverified-extended
|
||||||
|
0x1b41c,Garmin обект 0x1b41c,unverified-extended
|
||||||
|
0x1b703,Garmin обект 0x1b703,unverified-extended
|
||||||
|
0x1ba03,Garmin обект 0x1ba03,unverified-extended
|
||||||
|
0x1be1c,Garmin обект 0x1be1c,unverified-extended
|
||||||
|
0x1c11e,Garmin обект 0x1c11e,unverified-extended
|
||||||
|
0x1c31d,Garmin обект 0x1c31d,unverified-extended
|
||||||
|
0x1c500,Garmin обект 0x1c500,unverified-extended
|
||||||
|
0x1c71f,Garmin обект 0x1c71f,unverified-extended
|
||||||
|
0x1c81e,Garmin обект 0x1c81e,unverified-extended
|
||||||
|
0x1cb1f,Garmin обект 0x1cb1f,unverified-extended
|
||||||
|
0x1ce02,Garmin обект 0x1ce02,unverified-extended
|
||||||
|
0x1d501,Garmin обект 0x1d501,unverified-extended
|
||||||
|
0x1d51e,Garmin обект 0x1d51e,unverified-extended
|
||||||
|
0x1d61f,Garmin обект 0x1d61f,unverified-extended
|
||||||
|
0x1d71c,Garmin обект 0x1d71c,unverified-extended
|
||||||
|
0x1d800,Garmin обект 0x1d800,unverified-extended
|
||||||
|
0x1da01,Garmin обект 0x1da01,unverified-extended
|
||||||
|
0x1da1e,Garmin обект 0x1da1e,unverified-extended
|
||||||
|
0x1db01,Garmin обект 0x1db01,unverified-extended
|
||||||
|
0x1db1e,Garmin обект 0x1db1e,unverified-extended
|
||||||
|
0x1db1f,Garmin обект 0x1db1f,unverified-extended
|
||||||
|
0x1dc01,Garmin обект 0x1dc01,unverified-extended
|
||||||
|
0x1de1f,Garmin обект 0x1de1f,unverified-extended
|
||||||
|
0x1e101,Garmin обект 0x1e101,unverified-extended
|
||||||
|
0x1e21f,Garmin обект 0x1e21f,unverified-extended
|
||||||
|
0x1ea00,Garmin обект 0x1ea00,unverified-extended
|
||||||
|
0x1ec1d,Garmin обект 0x1ec1d,unverified-extended
|
||||||
|
0x1f401,Garmin обект 0x1f401,unverified-extended
|
||||||
|
0x1f501,Garmin обект 0x1f501,unverified-extended
|
||||||
|
0x1fb01,Garmin обект 0x1fb01,unverified-extended
|
||||||
|
0x1ff00,Garmin обект 0x1ff00,unverified-extended
|
||||||
|
0x1ff11,Garmin обект 0x1ff11,unverified-extended
|
||||||
|
0x1ff18,Garmin обект 0x1ff18,unverified-extended
|
||||||
|
File diff suppressed because it is too large
Load Diff
+265
-265
File diff suppressed because it is too large
Load Diff
@@ -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,v08_osm_tags,v08_synthetic_fallback,v08_label,v08_confidence
|
||||||
|
0x6600,66206,Triangulation,Кота,,yes,41.2312603,22.6785922,217,42.8680515,22.6715970,icon_legend_verified,custom_style_information,bgm:spot_height=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=triangulation,yes,Височинна кота,legend-ambiguous
|
||||||
|
0x2800,54902,,,place=locality,no,42.6277471,24.3122506,Големия поп,43.3119893,27.8330684,not_on_legend,native_osmand,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Garmin обект 0x2800,source-inferred
|
||||||
|
0x6511,50308,Spring,Извор,natural=spring,yes,42.8732872,23.3371925,Студена вода,42.5154161,23.1598663,icon_legend_verified,native_osmand,natural=spring;garmin:legend=spring,no,Вода - Извор,legend
|
||||||
|
0x6414,32922,Drinking Water,Чешма,amenity=drinking_water,yes,43.1117034,23.7205982,затлачена,42.2771502,25.3026724,icon_legend_verified,native_osmand,amenity=drinking_water;garmin:legend=drinking_water,no,Вода - Чешма,legend
|
||||||
|
0x6500,31214,Reservoir,Каптаж,,yes,42.0310307,24.7559094,Забучена,42.7306151,22.7937984,icon_legend_verified,custom_style_information,man_made=water_intake;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=reservoir,yes,Вода - Каптаж,legend
|
||||||
|
0x6603,26366,Triangulation,Кота,man_made=survey_point,yes,42.5520873,23.8540435,1079,42.5116181,23.8444304,icon_legend_verified,native_osmand,man_made=survey_point;garmin:legend=triangulation,no,Триангулачна точка,legend
|
||||||
|
0x6616,15540,,,natural=peak,no,42.8516150,25.7782173,Симов чукар,43.4484601,23.3003926,name_supported,native_osmand,natural=peak,no,Връх,verified
|
||||||
|
0x6614,15289,Rock,Скала,,yes,42.7437901,25.2693915,15,42.7658057,25.9388924,icon_legend_verified,custom_style_information,natural=rock;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=rock,yes,Скала,legend
|
||||||
|
0x6618,10176,Tree,Дърво,natural=tree,yes,42.7752686,23.9033318,столетно дърво,43.2969904,24.6177006,icon_legend_verified,native_osmand,natural=tree;garmin:legend=tree,no,Дърво,legend
|
||||||
|
0x6417,8868,Well,Кладенец,man_made=water_well,yes,42.2628808,24.2223430,Юсеиновия кладенец,41.7512012,25.0972795,icon_legend_verified,native_osmand,man_made=water_well;garmin:legend=well,no,Вода - Кладенец,legend
|
||||||
|
0x650b,8767,Winter Marking,Зимна маркировка,,yes,42.0000887,23.3820820,94,42.7546048,24.7787404,icon_legend_verified,custom_style_information,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=winter_marking,yes,Зимна маркировка,legend
|
||||||
|
0x1100,8430,,,,no,42.5975990,22.5972247,Върбица,42.8741455,25.5907202,not_on_legend,custom_style_information,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Населено място,uncertain
|
||||||
|
0xd00,6610,,,,no,41.6287208,23.7694144,Балдево,43.4385252,26.5020704,not_on_legend,custom_style_information,place=locality;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Селище,uncertain
|
||||||
|
0x6402,6186,Building,Сграда,building=yes,yes,42.5507569,23.2217932,Чакало,42.2648549,23.5112143,icon_legend_verified,native_osmand,building=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=building,yes,Сграда,legend
|
||||||
|
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,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,yes,Спирка,legend
|
||||||
|
0x6416,2886,Ruins,Руини,historic=ruins,yes,41.5940452,24.3094182,Разв.,41.9296217,24.6835971,icon_legend_verified,native_osmand,historic=ruins;garmin:legend=ruins,no,Руини,legend
|
||||||
|
0x6407,2861,Picnic Site,Пикник,tourism=picnic_site,yes,41.9156528,25.3233576,беседка,42.6045942,23.4355974,icon_legend_verified,native_osmand,tourism=picnic_site;garmin:legend=picnic_site,no,Пикник,legend
|
||||||
|
0x640f,2766,Graveyard/Tombstone,"Гробище, оброк",,yes,42.0345068,22.4919534,Гробище,41.4501715,24.6433210,icon_legend_verified,custom_style_information,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,yes,Гробище,legend
|
||||||
|
0x6608,2644,Hotel,Хотел,tourism=hotel,yes,42.8794885,27.8957462,Fortuna Cape Complex,42.3725724,27.7117682,icon_legend_verified,native_osmand,tourism=hotel;garmin:legend=hotel,no,Хотел,legend
|
||||||
|
0x660b,2612,Mark,Маркировка,,yes,43.9378452,22.4072385,Пир. 454,41.6514015,24.3190312,icon_legend_verified,custom_style_information,trailblazed=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mark,yes,Туристическа маркировка,legend
|
||||||
|
0x2c05,2481,School,Училище,amenity=school,yes,41.7214394,24.6845198,СУ Олимпийски Надежди,42.2714853,24.5394874,icon_legend_verified,native_osmand,amenity=school;garmin:legend=school,no,Училище,legend
|
||||||
|
0x6501,2412,Restaurant,Ресторант,amenity=restaurant,yes,43.3456135,28.0715060,Therma beach,42.4869204,26.4846039,icon_legend_verified,native_osmand,amenity=restaurant;garmin:legend=restaurant,no,Ресторант,legend
|
||||||
|
0x640a,2095,Danger,Опасност,,yes,43.1507993,25.3284001,Стълба,42.5652623,23.4620762,icon_legend_verified,custom_style_information,hazard=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=danger,yes,Опасност,legend
|
||||||
|
0x10301,2006,,,,no,43.4377956,28.9283538,,42.2109532,27.8938365,extended_unverified,custom_style_information,tourism=information;information=board;bgm:synthetic_icon=yes,yes,Garmin обект 0x10301,unverified-extended
|
||||||
|
0x6502,1864,River Passage,Брод,,yes,42.7929711,25.2992177,Бент,42.1954823,23.7029600,icon_legend_verified,custom_style_information,ford=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=river_passage,yes,Речен брод,legend
|
||||||
|
0x6613,1746,Waterfall,Водопад,waterway=waterfall,yes,42.7435327,24.6398234,Кастрак дере горен,42.0257735,24.5287156,icon_legend_verified,native_osmand,waterway=waterfall;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=waterfall,yes,Водопад,legend
|
||||||
|
0x6403,1729,Graveyard/Tombstone,"Гробище, оброк",,yes,43.0418801,23.5914874,Св. Мария Магдалена,41.7204952,24.8700428,icon_legend_verified,custom_style_information,landuse=cemetery;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=graveyard_tombstone,yes,Гробище,legend
|
||||||
|
0x6401,1679,Bridge,Мост,man_made=bridge,yes,42.6645684,22.9691291,Зидан мост,41.3415956,22.8474855,icon_legend_verified,native_osmand,man_made=bridge;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bridge,yes,Мост,legend
|
||||||
|
0x2c0b,1606,Church,Църква,amenity=place_of_worship,yes,43.0217957,24.8099613,Рождество Богородично,41.6844034,25.7115483,icon_legend_verified,native_osmand,amenity=place_of_worship;garmin:legend=church,no,Църква,legend
|
||||||
|
0x2b00,1558,,,tourism=hotel,no,42.6465440,27.6449919,Sotirovi Holiday,41.6332698,24.7040462,not_on_legend,native_osmand,tourism=hotel,no,Garmin обект 0x2b00,source-inferred
|
||||||
|
0x6404,1507,Church,Църква,amenity=place_of_worship,yes,42.1896243,27.0861053,Св. Димитър,42.6495481,23.1854010,icon_legend_verified,native_osmand,amenity=place_of_worship;garmin:legend=church,no,Църква,legend
|
||||||
|
0x2f0b,1499,,,,no,43.7308860,23.9443588,автополигон,42.2151589,24.0181303,not_on_legend,custom_style_information,leisure=track;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Тренировъчна площадка,inferred
|
||||||
|
0x661d,1412,,,,yes,41.1914778,24.0922236,Овчарник,42.7084708,25.3351378,not_on_legend,custom_style_information,building=agricultural;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Стопанска постройка,inferred
|
||||||
|
0x640c,1353,Mine Shaft,Мина,man_made=mine_shaft,yes,43.0497336,22.9328442,(Въгл.),41.5701199,24.6346951,icon_legend_verified,native_osmand,man_made=mine_shaft;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=mine_shaft,yes,Мина,legend
|
||||||
|
0x2c08,1328,,,,yes,41.9112968,24.9703360,"Конна база ""Wild City""",42.6861334,23.3365059,not_on_legend,custom_style_information,leisure=horse_riding,no,Конна база,inferred
|
||||||
|
0x2f00,1269,,,,yes,42.9236698,24.2466116,индустриални сгради,42.8208017,23.1913233,not_on_legend,custom_style_information,landuse=industrial;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Промишлен обект,inferred
|
||||||
|
0x6409,1235,Monument,Паметник,historic=monument,yes,43.1282043,23.6027098,Перо Херцеговинеца,42.4960184,22.8770757,icon_legend_verified,native_osmand,historic=monument;garmin:legend=monument,no,Паметник,legend
|
||||||
|
0x661c,1169,,,,yes,41.8346500,26.4578676,Койчовата могила,43.6355710,28.5723281,not_on_legend,custom_style_information,bgm:landmark=mound;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Могила,uncertain
|
||||||
|
0x640b,1128,Chapel,Параклис,amenity=place_of_worship,yes,41.9598985,24.3688774,Параклис,41.9762921,24.8116350,icon_legend_verified,native_osmand,amenity=place_of_worship;garmin:legend=chapel,no,Параклис,legend
|
||||||
|
0x661e,979,,,amenity=shelter,yes,41.4122772,24.8197031,Навес с барбекю,41.3865280,24.7667241,not_on_legend,native_osmand,amenity=shelter,no,Garmin обект 0x661e,source-inferred
|
||||||
|
0x640e,977,Bus Stop/Station,Спирка,highway=bus_stop,yes,43.3513427,25.1430917,Левски,42.3796749,22.7069807,icon_legend_verified,native_osmand,highway=bus_stop;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=bus_stop_station,yes,Спирка,legend
|
||||||
|
0x6615,942,Cave,Пещера,natural=cave_entrance,yes,41.8003178,23.3853436,Дупка,43.2577872,24.0077662,icon_legend_verified,native_osmand,natural=cave_entrance;garmin:legend=cave,no,Пещера,legend
|
||||||
|
0x6602,891,Viewpoint,Гледка,tourism=viewpoint,yes,41.7438412,23.4641790,Кьошка (Балконе)-панорама,42.8009748,27.1023059,icon_legend_verified,native_osmand,tourism=viewpoint;garmin:legend=viewpoint,no,Панорама - Гледка,legend
|
||||||
|
0x6411,875,Tower,Кула,man_made=tower,yes,41.7411375,24.8182654,GSM клетка,42.1343064,24.8024940,icon_legend_verified,native_osmand,man_made=tower;garmin:legend=tower,no,Кула,legend
|
||||||
|
0x6406,854,Barrier/Gate,Бариера,barrier=gate,yes,41.5502286,24.7455668,Военен обект!,41.2806129,25.2994323,icon_legend_verified,native_osmand,barrier=gate;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=barrier_gate,yes,Бариера,legend
|
||||||
|
0x3003,841,,,,no,43.2501698,27.7748966,Кметство,41.8338132,24.8308182,not_on_legend,custom_style_information,amenity=townhall,no,Кметство,inferred
|
||||||
|
0x2f01,778,,,,no,41.5430832,23.2712317,Газостанция,43.7991214,26.1920500,not_on_legend,custom_style_information,amenity=fuel,no,Бензиностанция,inferred
|
||||||
|
0x6503,760,Crossroad,Кръстопът,,yes,43.4149003,28.4942007,на запад Черноморски път,41.5363026,23.6495304,icon_legend_verified,custom_style_information,bgm:trail_junction=yes;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=crossroad,yes,Кръстопът,legend
|
||||||
|
0x3002,564,,,,no,42.5638032,27.6036644,First Aid,42.4966407,24.7085094,not_on_legend,custom_style_information,emergency=first_aid,no,Първа помощ,inferred
|
||||||
|
0x2c02,538,,,,yes,42.3479176,25.0754786,Детска градина,43.5124254,26.7439628,not_on_legend,custom_style_information,amenity=kindergarten,no,Детска градина,inferred
|
||||||
|
0x2a0e,525,,,,yes,42.0046806,24.8740768,Pandora,42.6043367,23.0305839,not_on_legend,custom_style_information,shop=yes,no,Търговски обект,uncertain
|
||||||
|
0x2e03,502,,,,no,43.2763910,27.9675651,магазин,42.1473527,24.7843194,not_on_legend,custom_style_information,shop=yes,no,Магазин,inferred
|
||||||
|
0x2e05,487,Pharmacy,Аптека,amenity=pharmacy,yes,42.7442837,25.3431416,Аптечка,42.6866698,23.3093405,icon_legend_verified,native_osmand,amenity=pharmacy;garmin:legend=pharmacy,no,Аптека,legend
|
||||||
|
0x2f05,486,,,amenity=post_office,no,42.0306015,23.8108063,Поща,43.7494254,27.4069619,not_on_legend,native_osmand,amenity=post_office,no,Garmin обект 0x2f05,source-inferred
|
||||||
|
0x2e02,477,,,,no,41.6551137,25.5503798,Хранителни стоки,41.6634393,24.3756366,not_on_legend,custom_style_information,shop=convenience,no,Хранителен магазин,inferred
|
||||||
|
0x2c03,474,,,,yes,43.2219315,25.7480693,читалище Съединение,43.7368727,26.1066914,not_on_legend,custom_style_information,amenity=community_centre,no,Читалище,inferred
|
||||||
|
0x6400,465,Quarry,Кариера,landuse=quarry,yes,40.8776808,23.9436078,(Кам.),42.0491624,26.4963627,icon_legend_verified,native_osmand,landuse=quarry;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=quarry,yes,Кариера,legend
|
||||||
|
0x2d02,434,,,,no,42.1507859,24.7315550,Casa de Cuba,42.0225549,23.9974666,not_on_legend,custom_style_information,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Търговски обект,uncertain
|
||||||
|
0x6506,424,Museum,Музей,tourism=museum,yes,42.1463013,24.7487855,Градска художествена галерия,42.4936581,27.4754548,icon_legend_verified,native_osmand,tourism=museum;garmin:legend=museum,no,Музей,legend
|
||||||
|
0x661a,384,Antiquity site,Античен обект,historic=archaeological_site,yes,41.7153454,26.0307527,Тракийска крепост Курт кале,43.2776999,27.1080351,icon_legend_verified,native_osmand,historic=archaeological_site;garmin:legend=antiquity_site,no,Античен обект,legend
|
||||||
|
0x6609,372,Hut,Хижа,tourism=alpine_hut,yes,43.2779145,27.1159101,Хижа Мадарски конник,41.8324399,24.7721529,icon_legend_verified,native_osmand,tourism=alpine_hut;garmin:legend=hut,no,Хижа,legend
|
||||||
|
0x2e06,348,,,,no,43.4717417,23.9467192,Trayкov Shop,42.6665640,25.4079223,not_on_legend,custom_style_information,shop=yes,no,Търговски обект,uncertain
|
||||||
|
0x2d09,337,,,leisure=swimming_pool,yes,41.8625021,23.5053134,Минерален басейн Пирин,42.2918701,23.2552886,not_on_legend,native_osmand,leisure=swimming_pool,no,Garmin обект 0x2d09,source-inferred
|
||||||
|
0x2f06,320,,,,no,42.3073840,23.8596869,Банка ДСК,43.2122111,27.9121184,not_on_legend,custom_style_information,amenity=bank,no,Банка,inferred
|
||||||
|
0x2f0c,320,Mosque,Джамия,amenity=place_of_worship;religion=muslim,yes,44.0549612,26.7991304,Джамия,41.4958334,24.6339655,icon_legend_verified,native_osmand,amenity=place_of_worship;religion=muslim;garmin:legend=mosque,no,Джамия,legend
|
||||||
|
0x661b,319,Medieval site,Средновековен обект,historic=archaeological_site,yes,42.0922279,24.2505813,"Средновековен манастир ""Св. Седмочиленици""",42.2452426,24.0083671,icon_legend_verified,native_osmand,historic=archaeological_site;garmin:legend=medieval_site,no,Средновековен обект,legend
|
||||||
|
0x6418,305,,,,yes,42.7693677,26.3003898,Ветрогенератор,42.7765560,26.3197017,not_on_legend,custom_style_information,power=generator;generator:source=wind;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Вятърен генератор,inferred
|
||||||
|
0x900,283,Town,Град <75 000,place=town,yes,42.0570374,24.5459247,Перущица,40.8942676,26.1739397,icon_legend_verified,native_osmand,place=town;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=town,yes,Град <75 000,legend
|
||||||
|
0x660a,275,Refuge,Заслон,amenity=shelter;shelter_type=basic_hut,yes,42.8157377,23.8160634,Заслон,42.7268600,26.3467383,icon_legend_verified,native_osmand,amenity=shelter;shelter_type=basic_hut;garmin:legend=refuge,no,Заслон,legend
|
||||||
|
0x6415,264,Camp Site,Място за бивакуване,tourism=camp_site,yes,41.7506647,25.1023221,Бивак,43.2923126,27.1431398,icon_legend_verified,native_osmand,tourism=camp_site;garmin:legend=camp_site,no,Място за бивакуване,legend
|
||||||
|
0x6405,260,Hunting Lodge,Ловна хижа,,yes,42.7514720,27.2207522,заслон Зайчар,41.6350079,25.5436206,icon_legend_verified,custom_style_information,building=hut;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=hunting_lodge,yes,Ловна хижа,legend
|
||||||
|
0x1040d,229,,,,no,41.9180989,28.0489111,,42.8007388,27.8943729,extended_unverified,custom_style_information,tourism=information;information=board;bgm:synthetic_icon=yes,yes,Garmin обект 0x1040d,unverified-extended
|
||||||
|
0x2a07,227,,,,no,43.8551474,25.9693837,Тирол,42.7743888,26.8785238,not_on_legend,custom_style_information,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Спортен обект,uncertain
|
||||||
|
0x6619,195,Prehistoric site,Праисторически обект,historic=archaeological_site,yes,42.5703692,25.3767228,Бащин камък (Слънчева врата),41.9394493,26.1900759,icon_legend_verified,native_osmand,historic=archaeological_site;garmin:legend=prehistoric_site,no,Праисторически обект,legend
|
||||||
|
0x3001,170,,,,yes,43.3623934,25.1447439,полиция,43.1404138,24.7057414,not_on_legend,custom_style_information,tourism=information;information=board;bgm:synthetic_icon=yes,yes,Garmin обект 0x3001,unknown
|
||||||
|
0x6601,165,Natural Phenomenon,Природен феномен,,yes,42.9589677,25.2119064,"скален феномен ""Момичките""",42.5682020,25.5528045,icon_legend_verified,custom_style_information,bgm:landmark=natural_phenomenon;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=natural_phenomenon,yes,Природен феномен,legend
|
||||||
|
0x2e0a,159,,,,no,43.8517356,25.9867859,Автокъщи,43.2120609,27.9186201,not_on_legend,custom_style_information,shop=car,no,Автокъща,inferred
|
||||||
|
0x10401,157,,,,no,42.6565218,27.7297497,,43.2037354,27.8479171,extended_unverified,custom_style_information,tourism=information;information=board;bgm:synthetic_icon=yes,yes,Garmin обект 0x10401,unverified-extended
|
||||||
|
0x640d,137,Lift,Лифт,,yes,42.6056242,23.2995987,Драгалевски междинна,42.5832009,23.2924747,icon_legend_verified,custom_style_information,aerialway=station;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=lift,yes,Лифт,legend
|
||||||
|
0x3007,132,,,,no,43.2023406,25.7318473,Помпена ст.,42.6586461,27.7180338,not_on_legend,custom_style_information,man_made=pumping_station;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Помпена станция,inferred
|
||||||
|
0x2f08,123,,,,yes,42.6397204,23.3731771,Акад. Александър Теодоров - Балан,42.7053809,23.3233523,not_on_legend,custom_style_information,bgm:landmark=unknown;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Обществен обект,uncertain
|
||||||
|
0xe00,114,,,,no,43.9952660,22.8717756,жк. Крум Бъчваров,43.9941502,22.8833628,not_on_legend,custom_style_information,place=neighbourhood;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Квартал,uncertain
|
||||||
|
0x6419,113,,,,yes,42.5478601,26.7053819,Фотоволтаична ценрала,42.4148440,25.6047320,not_on_legend,custom_style_information,power=generator;generator:source=solar;tourism=information;information=board;bgm:synthetic_icon=yes,yes,Фотоволтаична централа,inferred
|
||||||
|
0x6617,112,Peak,Връх,natural=peak,yes,41.7893529,22.9647946,Огреяк (Кадийца) (1924),41.9179702,24.9033022,icon_legend_verified,native_osmand,natural=peak;garmin:legend=peak,no,Връх,legend
|
||||||
|
0x2f03,106,,,,no,41.3775158,25.0830102,"Автосервиз ""Профиров""",43.8112664,25.9830523,not_on_legend,custom_style_information,shop=car_repair,no,Автосервиз,inferred
|
||||||
|
0x2e07,105,Clothes shop,Магазин за дрехи,shop=clothes,yes,43.0698609,25.6080151,"Кооперативен пазар ""Бузлуджа""",42.1253800,24.7373700,icon_legend_verified,native_osmand,shop=clothes;garmin:legend=clothes_shop,no,Магазин за дрехи,legend
|
||||||
|
0x4700,101,Port,Пристанище,industrial=port,yes,41.6431189,25.2845192,Пристан,42.0604706,27.9666424,icon_legend_verified,native_osmand,industrial=port;tourism=information;information=board;bgm:synthetic_icon=yes;garmin:legend=port,yes,Пристанище,legend
|
||||||
|
@@ -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
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -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."
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Actual original IMG bbox: 24.640,42.020,24.665,42.050. Contains 57 extracted POIs, including the three user-provided coordinates. Not an OBF proof.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
status,code,lat,lon,name,count,osm_url
|
||||||
|
@@ -0,0 +1,25 @@
|
|||||||
|
code,osm_poi_count,nationwide_type_count,icon_strategy,synthetic_count,generated_name_count,legend,review_status,example_lat,example_lon,example_name,example_osm_tags,osm_coord_link
|
||||||
|
0x6414,11,11,native-osm,0,9,,,42.0299792,24.6593070,Овчарска чешма,amenity=drinking_water,https://www.openstreetmap.org/?mlat=42.0299792&mlon=24.6593070#map=18/42.0299792/24.6593070
|
||||||
|
0x6500,9,9,synthetic,9,7,,,42.0471239,24.6401882,Вода - Каптаж - 6XYYYJO443X,tourism=information|man_made=water_intake,https://www.openstreetmap.org/?mlat=42.0471239&mlon=24.6401882#map=18/42.0471239/24.6401882
|
||||||
|
0x640b,4,4,native-osm,0,0,,,42.0467591,24.6438789,Св. Димитър,amenity=place_of_worship,https://www.openstreetmap.org/?mlat=42.0467591&mlon=24.6438789#map=18/42.0467591/24.6438789
|
||||||
|
0x6600,4,4,synthetic,4,0,,,42.0236921,24.6458101,758,tourism=information,https://www.openstreetmap.org/?mlat=42.0236921&mlon=24.6458101#map=18/42.0236921/24.6458101
|
||||||
|
0x6613,4,4,synthetic,4,4,,,42.0226622,24.6431494,Водопад - X905W9SL44C,tourism=information|waterway=waterfall,https://www.openstreetmap.org/?mlat=42.0226622&mlon=24.6431494#map=18/42.0226622/24.6431494
|
||||||
|
0x6602,3,3,native-osm,0,3,,,42.0303869,24.6514106,Панорама - Гледка - IHT1SHKTVIH,tourism=viewpoint,https://www.openstreetmap.org/?mlat=42.0303869&mlon=24.6514106#map=18/42.0303869/24.6514106
|
||||||
|
0x2800,2,2,synthetic,2,0,,,42.0296359,24.6555948,Момина скала,tourism=information|place=locality,https://www.openstreetmap.org/?mlat=42.0296359&mlon=24.6555948#map=18/42.0296359/24.6555948
|
||||||
|
0x2b00,2,2,native-osm,0,0,,,42.0442057,24.6486855,х-л Водопада,tourism=hotel,https://www.openstreetmap.org/?mlat=42.0442057&mlon=24.6486855#map=18/42.0442057/24.6486855
|
||||||
|
0x6502,2,2,synthetic,2,0,,,42.0416737,24.6499300,Брод,tourism=information,https://www.openstreetmap.org/?mlat=42.0416737&mlon=24.6499300#map=18/42.0416737/24.6499300
|
||||||
|
0x6511,2,2,native-osm,0,1,,,42.0299363,24.6593714,Вода - Извор - 64XT1XE2OB5,natural=spring,https://www.openstreetmap.org/?mlat=42.0299363&mlon=24.6593714#map=18/42.0299363/24.6593714
|
||||||
|
0x2c05,1,1,native-osm,0,0,,,42.0485187,24.6484709,Основно училище,amenity=school,https://www.openstreetmap.org/?mlat=42.0485187&mlon=24.6484709#map=18/42.0485187/24.6484709
|
||||||
|
0x2c08,1,1,native-osm,0,0,,,42.0448923,24.6473336,Детска площадка,leisure=horse_riding,https://www.openstreetmap.org/?mlat=42.0448923&mlon=24.6473336#map=18/42.0448923/24.6473336
|
||||||
|
0x3003,1,1,native-osm,0,0,,,42.0457292,24.6463251,Кметство,amenity=townhall,https://www.openstreetmap.org/?mlat=42.0457292&mlon=24.6463251#map=18/42.0457292/24.6463251
|
||||||
|
0x3007,1,1,synthetic,1,0,,,42.0496774,24.6426129,Пречиствателна станция,tourism=information|man_made=pumping_station,https://www.openstreetmap.org/?mlat=42.0496774&mlon=24.6426129#map=18/42.0496774/24.6426129
|
||||||
|
0x6402,1,1,synthetic,1,1,,,42.0302367,24.6557236,Сграда - 245G2CMJB5W,tourism=information|building=yes,https://www.openstreetmap.org/?mlat=42.0302367&mlon=24.6557236#map=18/42.0302367/24.6557236
|
||||||
|
0x6403,1,1,synthetic,1,0,,,42.0300436,24.6541786,Кръст,tourism=information|landuse=cemetery,https://www.openstreetmap.org/?mlat=42.0300436&mlon=24.6541786#map=18/42.0300436/24.6541786
|
||||||
|
0x6404,1,1,native-osm,0,0,,,42.0466948,24.6454024,„Св. Харалампий“,amenity=place_of_worship,https://www.openstreetmap.org/?mlat=42.0466948&mlon=24.6454024#map=18/42.0466948/24.6454024
|
||||||
|
0x6407,1,1,native-osm,0,0,,,42.0327902,24.6572471,Маси и пейки,tourism=picnic_site,https://www.openstreetmap.org/?mlat=42.0327902&mlon=24.6572471#map=18/42.0327902/24.6572471
|
||||||
|
0x6409,1,1,native-osm,0,1,,,42.0468235,24.6437931,Паметник - 0848D3PQRMD,historic=monument,https://www.openstreetmap.org/?mlat=42.0468235&mlon=24.6437931#map=18/42.0468235/24.6437931
|
||||||
|
0x640a,1,1,synthetic,1,0,,,42.0404720,24.6489859,Свлачище!,tourism=information,https://www.openstreetmap.org/?mlat=42.0404720&mlon=24.6489859#map=18/42.0404720/24.6489859
|
||||||
|
0x641c,1,1,synthetic,1,1,,,42.0456433,24.6473551,Спирка - 5JRDPRMELBN,tourism=information|highway=bus_stop,https://www.openstreetmap.org/?mlat=42.0456433&mlon=24.6473551#map=18/42.0456433/24.6473551
|
||||||
|
0x6506,1,1,native-osm,0,0,,,42.0461583,24.6438360,Храбрино,tourism=museum,https://www.openstreetmap.org/?mlat=42.0461583&mlon=24.6438360#map=18/42.0461583/24.6438360
|
||||||
|
0x661b,1,1,native-osm,0,0,,,42.0300221,24.6540499,Крепост Градец,historic=archaeological_site,https://www.openstreetmap.org/?mlat=42.0300221&mlon=24.6540499#map=18/42.0300221/24.6540499
|
||||||
|
0xd00,1,1,synthetic,1,0,,,42.0457935,24.6471834,Храбрино,tourism=information|place=locality,https://www.openstreetmap.org/?mlat=42.0457935&mlon=24.6471834#map=18/42.0457935/24.6471834
|
||||||
|
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"status": "PASS",
|
||||||
|
"counts": {
|
||||||
|
"pois": 57,
|
||||||
|
"generated_name": 27,
|
||||||
|
"synthetic_icon": 27
|
||||||
|
},
|
||||||
|
"catalog_types": 24,
|
||||||
|
"exported_types": 24,
|
||||||
|
"note": "Audit is for OSM tags only. A real .obf inspector comparison and OsmAnd visual inspection remain required.",
|
||||||
|
"errors": [],
|
||||||
|
"missing_types_from_catalog": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
code,kind,count,named,default_tags,has_typ_icon,configured_rules,example1_lat,example1_lon,example1_name,example1_map,example2_lat,example2_lon,example2_name,example2_map,example3_lat,example3_lon,example3_name,example3_map,example4_lat,example4_lon,example4_name,example4_map,example5_lat,example5_lon,example5_name,example5_map
|
||||||
|
"0xd00",classic,1,1,"",no,1,42.0457935,24.6471834,"Храбрино","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x2800",classic,2,2,"place=locality",no,1,42.0296359,24.6555948,"Момина скала","02235062",42.0223832,24.6616030,"Димитранов камък","02235062",,,,,,,,,,,,
|
||||||
|
"0x2b00",classic,2,2,"tourism=hotel",no,1,42.0442057,24.6486855,"х-л Водопада","02235062",42.0492697,24.6458745,"Звездната къща","02235062",,,,,,,,,,,,
|
||||||
|
"0x2c05",classic,1,1,"garmin:legend=school;amenity=school",yes,1,42.0485187,24.6484709,"Основно училище","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x2c08",classic,1,1,"",yes,1,42.0448923,24.6473336,"Детска площадка","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x3003",classic,1,1,"",no,1,42.0457292,24.6463251,"Кметство","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x3007",classic,1,1,"",no,1,42.0496774,24.6426129,"Пречиствателна станция","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6402",classic,1,1,"garmin:legend=building;building=yes",yes,1,42.0302367,24.6557236,"Сграда - 245G2CMJB5W","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6403",classic,1,1,"garmin:legend=graveyard_tombstone",yes,1,42.0300436,24.6541786,"Кръст","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6404",classic,1,1,"garmin:legend=church;amenity=place_of_worship",yes,1,42.0466948,24.6454024,"„Св. Харалампий“","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6407",classic,1,1,"garmin:legend=picnic_site;tourism=picnic_site",yes,1,42.0327902,24.6572471,"Маси и пейки","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6409",classic,1,1,"garmin:legend=monument;historic=monument",yes,1,42.0468235,24.6437931,"Паметник - 0848D3PQRMD","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x640a",classic,1,1,"garmin:legend=danger",yes,1,42.0404720,24.6489859,"Свлачище!","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x640b",classic,4,4,"garmin:legend=chapel;amenity=place_of_worship",yes,1,42.0467591,24.6438789,"Св. Димитър","02235062",42.0442271,24.6445870,"Св. Мария","02235062",42.0327687,24.6571398,"Св. Богородица","02235062",42.0438838,24.6479988,"Св. Георги","02235062",,,,
|
||||||
|
"0x6414",classic,11,11,"garmin:legend=drinking_water;amenity=drinking_water",yes,1,42.0299792,24.6593070,"Овчарска чешма","02235062",42.0340562,24.6610451,"Вода - Чешма - PG9C0I98SET","02235062",42.0319533,24.6577406,"Вода - Чешма - T3B8DZ40HTB","02235062",42.0245075,24.6626544,"(чучур)","02235062",42.0461583,24.6438146,"Вода - Чешма - 5AJ9ZXAO8PR","02235062"
|
||||||
|
"0x641c",classic,1,1,"garmin:legend=bus_stop_station;highway=bus_stop",yes,1,42.0456433,24.6473551,"Спирка - 5JRDPRMELBN","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6500",classic,9,9,"garmin:legend=reservoir",yes,1,42.0340991,24.6520114,"Вода - Каптаж - ED03D455VTZ","02235062",42.0357084,24.6481919,"Вода - Каптаж - WONQJS3668N","02235062",42.0471239,24.6401882,"Вода - Каптаж - 6XYYYJO443X","02235062",42.0347643,24.6522689,"Вода - Каптаж - 1THF1SDNTKJ","02235062",42.0379400,24.6520758,"Вода - Каптаж - GS51DWAWJP0","02235062"
|
||||||
|
"0x6502",classic,2,2,"garmin:legend=river_passage",yes,1,42.0416737,24.6499300,"Брод","02235062",42.0363736,24.6521187,"Бент","02235062",,,,,,,,,,,,
|
||||||
|
"0x6506",classic,1,1,"garmin:legend=museum;tourism=museum",yes,1,42.0461583,24.6438360,"Храбрино","02235062",,,,,,,,,,,,,,,,
|
||||||
|
"0x6511",classic,2,2,"garmin:legend=spring;natural=spring",yes,1,42.0299363,24.6593714,"Вода - Извор - 64XT1XE2OB5","02235062",42.0380259,24.6560884,"Наковия кладенец","02235062",,,,,,,,,,,,
|
||||||
|
"0x6600",classic,4,4,"garmin:legend=triangulation",yes,1,42.0278120,24.6633840,"769","02235062",42.0396781,24.6603799,"466","02235062",42.0400643,24.6476126,"453","02235062",42.0236921,24.6458101,"758","02235062",,,,
|
||||||
|
"0x6602",classic,3,3,"garmin:legend=viewpoint;tourism=viewpoint",yes,1,42.0303869,24.6514106,"Панорама - Гледка - IHT1SHKTVIH","02235062",42.0346141,24.6528697,"Панорама - Гледка - 25IVP49H823","02235062",42.0321679,24.6523118,"Панорама - Гледка - LZ1TMLZV2JV","02235062",,,,,,,,
|
||||||
|
"0x6613",classic,4,4,"garmin:legend=waterfall;waterway=waterfall",yes,1,42.0280695,24.6428490,"Водопад - EPRYIU6B6MW","02235062",42.0226622,24.6431494,"Водопад - X905W9SL44C","02235062",42.0441842,24.6483636,"Водопад - F8T10N7ZP96","02235062",42.0238209,24.6434712,"Водопад - 0MTQEAVSG4G","02235062",,,,
|
||||||
|
"0x661b",classic,1,1,"garmin:legend=medieval_site;historic=archaeological_site",yes,1,42.0300221,24.6540499,"Крепост Градец","02235062",,,,,,,,,,,,,,,,
|
||||||
|
@@ -0,0 +1,58 @@
|
|||||||
|
mapset,kind,code,lat,lon,name
|
||||||
|
"02235062","classic","0x6602",42.0303869,24.6514106,"Панорама - Гледка - IHT1SHKTVIH"
|
||||||
|
"02235062","classic","0x6613",42.0226622,24.6431494,"Водопад - X905W9SL44C"
|
||||||
|
"02235062","classic","0x6600",42.0236921,24.6458101,"758"
|
||||||
|
"02235062","classic","0x6613",42.0238209,24.6434712,"Водопад - 0MTQEAVSG4G"
|
||||||
|
"02235062","classic","0x6600",42.0278120,24.6633840,"769"
|
||||||
|
"02235062","classic","0x6613",42.0280695,24.6428490,"Водопад - EPRYIU6B6MW"
|
||||||
|
"02235062","classic","0x661b",42.0300221,24.6540499,"Крепост Градец"
|
||||||
|
"02235062","classic","0x6511",42.0299363,24.6593714,"Вода - Извор - 64XT1XE2OB5"
|
||||||
|
"02235062","classic","0x6402",42.0302367,24.6557236,"Сграда - 245G2CMJB5W"
|
||||||
|
"02235062","classic","0x6403",42.0300436,24.6541786,"Кръст"
|
||||||
|
"02235062","classic","0x6414",42.0299792,24.6593070,"Овчарска чешма"
|
||||||
|
"02235062","classic","0x6414",42.0245075,24.6626544,"(чучур)"
|
||||||
|
"02235062","classic","0x2800",42.0296359,24.6555948,"Момина скала"
|
||||||
|
"02235062","classic","0x2800",42.0223832,24.6616030,"Димитранов камък"
|
||||||
|
"02235062","classic","0x6613",42.0441842,24.6483636,"Водопад - F8T10N7ZP96"
|
||||||
|
"02235062","classic","0x6600",42.0400643,24.6476126,"453"
|
||||||
|
"02235062","classic","0x6600",42.0396781,24.6603799,"466"
|
||||||
|
"02235062","classic","0x6602",42.0346141,24.6528697,"Панорама - Гледка - 25IVP49H823"
|
||||||
|
"02235062","classic","0x6602",42.0321679,24.6523118,"Панорама - Гледка - LZ1TMLZV2JV"
|
||||||
|
"02235062","classic","0x6506",42.0461583,24.6438360,"Храбрино"
|
||||||
|
"02235062","classic","0x6500",42.0471239,24.6401882,"Вода - Каптаж - 6XYYYJO443X"
|
||||||
|
"02235062","classic","0x6500",42.0432830,24.6487284,"капт."
|
||||||
|
"02235062","classic","0x6500",42.0425105,24.6494579,"капт."
|
||||||
|
"02235062","classic","0x6502",42.0416737,24.6499300,"Брод"
|
||||||
|
"02235062","classic","0x6500",42.0487332,24.6517754,"Вода - Каптаж - 9WEI0ZZQ66Y"
|
||||||
|
"02235062","classic","0x6511",42.0380259,24.6560884,"Наковия кладенец"
|
||||||
|
"02235062","classic","0x6500",42.0379400,24.6520758,"Вода - Каптаж - GS51DWAWJP0"
|
||||||
|
"02235062","classic","0x6502",42.0363736,24.6521187,"Бент"
|
||||||
|
"02235062","classic","0x6500",42.0357084,24.6481919,"Вода - Каптаж - WONQJS3668N"
|
||||||
|
"02235062","classic","0x6500",42.0487547,24.6498013,"Вода - Каптаж - M80XTSKBFOQ"
|
||||||
|
"02235062","classic","0x6500",42.0347643,24.6522689,"Вода - Каптаж - 1THF1SDNTKJ"
|
||||||
|
"02235062","classic","0x6500",42.0340991,24.6520114,"Вода - Каптаж - ED03D455VTZ"
|
||||||
|
"02235062","classic","0x6414",42.0476389,24.6402955,"Вода - Чешма - 449O0WBOFC0"
|
||||||
|
"02235062","classic","0x6414",42.0492697,24.6564531,"Вода - Чешма - TMP5NG666J9"
|
||||||
|
"02235062","classic","0x6409",42.0468235,24.6437931,"Паметник - 0848D3PQRMD"
|
||||||
|
"02235062","classic","0x640b",42.0467591,24.6438789,"Св. Димитър"
|
||||||
|
"02235062","classic","0x6404",42.0466948,24.6454024,"„Св. Харалампий“"
|
||||||
|
"02235062","classic","0x6414",42.0465875,24.6500158,"Вода - Чешма - GSX3PLAFQQ6"
|
||||||
|
"02235062","classic","0x6414",42.0461583,24.6438146,"Вода - Чешма - 5AJ9ZXAO8PR"
|
||||||
|
"02235062","classic","0x6414",42.0319533,24.6577406,"Вода - Чешма - T3B8DZ40HTB"
|
||||||
|
"02235062","classic","0x640b",42.0327687,24.6571398,"Св. Богородица"
|
||||||
|
"02235062","classic","0x6407",42.0327902,24.6572471,"Маси и пейки"
|
||||||
|
"02235062","classic","0x6414",42.0340562,24.6610451,"Вода - Чешма - PG9C0I98SET"
|
||||||
|
"02235062","classic","0x640a",42.0404720,24.6489859,"Свлачище!"
|
||||||
|
"02235062","classic","0x6414",42.0428324,24.6493292,"Вода - Чешма - 8J61V43EE3Y"
|
||||||
|
"02235062","classic","0x640b",42.0438838,24.6479988,"Св. Георги"
|
||||||
|
"02235062","classic","0x640b",42.0442271,24.6445870,"Св. Мария"
|
||||||
|
"02235062","classic","0x6414",42.0454288,24.6470118,"Вода - Чешма - ZAA570CLKRC"
|
||||||
|
"02235062","classic","0x6414",42.0455575,24.6632338,"Вода - Чешма - K0SLDKCX5K4"
|
||||||
|
"02235062","classic","0x641c",42.0456433,24.6473551,"Спирка - 5JRDPRMELBN"
|
||||||
|
"02235062","classic","0x3007",42.0496774,24.6426129,"Пречиствателна станция"
|
||||||
|
"02235062","classic","0x3003",42.0457292,24.6463251,"Кметство"
|
||||||
|
"02235062","classic","0x2c05",42.0485187,24.6484709,"Основно училище"
|
||||||
|
"02235062","classic","0x2c08",42.0448923,24.6473336,"Детска площадка"
|
||||||
|
"02235062","classic","0x2b00",42.0442057,24.6486855,"х-л Водопада"
|
||||||
|
"02235062","classic","0x2b00",42.0492697,24.6458745,"Звездната къща"
|
||||||
|
"02235062","classic","0xd00",42.0457935,24.6471834,"Храбрино"
|
||||||
|
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"source_pois": 57,
|
||||||
|
"expected_after_drops": 57,
|
||||||
|
"declared_drops": 0,
|
||||||
|
"osm_pois": 57,
|
||||||
|
"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."
|
||||||
|
}
|
||||||
Executable
+307
@@ -0,0 +1,307 @@
|
|||||||
|
#!/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':'Local-only compat data; synthetic information icons are not truth about an informational board. 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-labels',default=str(ROOT/'config/poi-labels-bg.csv'),help='Bulgarian prefixes for stable generated names on nameless Garmin POIs')
|
||||||
|
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-labels',Path(args.poi_labels).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'
|
||||||
|
call([sys.executable,ROOT/'tools/audit_icon_coverage.py', '--osm',osm, '--catalog',catalog,
|
||||||
|
'--csv',dest/'poi-coverage.csv','--json',dest/'poi-coverage.json'],
|
||||||
|
log=dest/'poi-coverage.log')
|
||||||
|
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
@@ -1,18 +1,15 @@
|
|||||||
#!/usr/bin/env bash
|
#!/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
|
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
|
||||||
if (( $# < 2 )); then echo "Usage: $0 CREATOR_DIR MAP.osm[.gz] [--poi-types FILE] [--rendering-types FILE]" >&2;exit 2;fi
|
echo "Usage: $0 CREATOR_DIR INPUT_v0.7.osm[.gz] [OUTPUT_DIR]" >&2
|
||||||
creator="$1"; input="$2";shift 2
|
echo "Recommended instead: python3 scripts/build_bgmountains.py --img gmapsupp.img --download-creator --out ./build/out" >&2
|
||||||
[[ -f "$creator/utilities.sh" && -f "$input" ]] || { echo 'Missing OsmAnd utilities.sh or map input' >&2;exit 1; }
|
exit 2
|
||||||
args=(generate-obf-no-address "$input")
|
fi
|
||||||
while (( $# > 0 )); do
|
creator="$1"; osm="$2"; out="${3:-$(dirname "$osm")/rebuilt-obf}"
|
||||||
case "$1" in
|
root="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
--poi-types|--rendering-types)
|
source_dir="$(dirname "$osm")"
|
||||||
(( $# >= 2 )) || { echo "Missing file after $1" >&2;exit 2; }
|
args=(--osm "$osm" --creator "$creator" --out "$out")
|
||||||
[[ -f "$2" ]] || { echo "Config not found: $2" >&2;exit 2; }
|
if [[ -f "$source_dir/poi-types.csv" ]]; then args+=(--catalog "$source_dir/poi-types.csv"); fi
|
||||||
args+=("$1=$2");shift 2;;
|
exec python3 "$root/scripts/build_bgmountains.py" "${args[@]}"
|
||||||
*) echo "Unknown option: $1" >&2;exit 2;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
export JAVA_OPTS="${JAVA_OPTS:--Xms256M -Xmx4096M}"
|
|
||||||
"$creator/utilities.sh" "${args[@]}"
|
|
||||||
|
|||||||
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
export JAVA_OPTS="-Xms256M -Xmx25G"; ./build_obf.sh ../compiling-obf/ ../BGMountains-legend-reviewed.osm
|
||||||
+53
-7
@@ -17,9 +17,9 @@ std::string code(int t){char b[20];std::snprintf(b,sizeof(b),"0x%x",t);return b;
|
|||||||
std::string hexColor(U32 c){char b[16];std::snprintf(b,sizeof(b),"#%02x%02x%02x",(c>>24)&255,(c>>16)&255,(c>>8)&255);return b;}
|
std::string hexColor(U32 c){char b[16];std::snprintf(b,sizeof(b),"#%02x%02x%02x",(c>>24)&255,(c>>16)&255,(c>>8)&255);return b;}
|
||||||
void tag(Tags&ts,std::string k,std::string v){if(!v.empty())ts.emplace_back(std::move(k),std::move(v));}
|
void tag(Tags&ts,std::string k,std::string v){if(!v.empty())ts.emplace_back(std::move(k),std::move(v));}
|
||||||
std::string makeTags(const Tags&tags){std::string out;for(auto&[k,v]:tags)out+="<tag k=\""+xmlEscape(k)+"\" v=\""+xmlEscape(v)+"\"/>";return out;}
|
std::string makeTags(const Tags&tags){std::string out;for(auto&[k,v]:tags)out+="<tag k=\""+xmlEscape(k)+"\" v=\""+xmlEscape(v)+"\"/>";return out;}
|
||||||
struct Options{std::string input,output,temp,poiOverrides,poiTypesOut,poiManifest,iconsDir,poiAdditions,poiNameFixes;BBox bbox;bool clip=false,inspect=false,contours=false,allLevels=false,keepTemp=false;int limitMaps=0,jobs=1,examples=5;};
|
struct Options{std::string input,output,temp,poiOverrides,poiTypesOut,poiManifest,iconsDir,poiAdditions,poiNameFixes,poiLabels;BBox bbox;bool clip=false,inspect=false,contours=false,allLevels=false,keepTemp=false;int limitMaps=0,jobs=1,examples=5;};
|
||||||
Options parse(int argc,char**argv){Options o;for(int i=1;i<argc;i++){std::string a=argv[i];auto next=[&](){if(i+1>=argc)fail("Missing value for "+a);return std::string(argv[++i]);};
|
Options parse(int argc,char**argv){Options o;for(int i=1;i<argc;i++){std::string a=argv[i];auto next=[&](){if(i+1>=argc)fail("Missing value for "+a);return std::string(argv[++i]);};
|
||||||
if(a=="--help"||a=="-h"){std::cout<<"garmin2osm v0.6 --input MAP.img [--output map.osm] [--inspect] [--poi-overrides rules.csv] [--poi-name-fixes fixes.csv] [--poi-additions additions.csv] [--poi-types-out unique-poi-types.csv] [--poi-manifest source-pois.csv] [--poi-examples N] [--icons-dir path] [--jobs N] [--bbox W,S,E,N] [--contours] [--keep-temp]\n";std::exit(0);}else if(a=="--input")o.input=next();else if(a=="--output")o.output=next();else if(a=="--temp")o.temp=next();else if(a=="--inspect")o.inspect=true;else if(a=="--contours")o.contours=true;else if(a=="--all-levels")o.allLevels=true;else if(a=="--keep-temp")o.keepTemp=true;else if(a=="--limit-maps")o.limitMaps=std::stoi(next());else if(a=="--poi-overrides")o.poiOverrides=next();else if(a=="--poi-name-fixes")o.poiNameFixes=next();else if(a=="--poi-additions")o.poiAdditions=next();else if(a=="--poi-types-out")o.poiTypesOut=next();else if(a=="--poi-manifest")o.poiManifest=next();else if(a=="--icons-dir")o.iconsDir=next();else if(a=="--poi-examples")o.examples=std::stoi(next());else if(a=="--jobs")o.jobs=std::stoi(next());else if(a=="--bbox"){std::string s=next();std::replace(s.begin(),s.end(),',',' ');double w,ss,e,n;if(std::sscanf(s.c_str(),"%lf%lf%lf%lf",&w,&ss,&e,&n)!=4)fail("Bad bbox");o.bbox={w,ss,e,n};o.clip=true;}else fail("Unknown argument: "+a);}
|
if(a=="--help"||a=="-h"){std::cout<<"garmin2osm v0.6 --input MAP.img [--output map.osm] [--inspect] [--poi-overrides rules.csv] [--poi-name-fixes fixes.csv] [--poi-labels labels.csv] [--poi-additions additions.csv] [--poi-types-out unique-poi-types.csv] [--poi-manifest source-pois.csv] [--poi-examples N] [--icons-dir path] [--jobs N] [--bbox W,S,E,N] [--contours] [--keep-temp]\n";std::exit(0);}else if(a=="--input")o.input=next();else if(a=="--output")o.output=next();else if(a=="--temp")o.temp=next();else if(a=="--inspect")o.inspect=true;else if(a=="--contours")o.contours=true;else if(a=="--all-levels")o.allLevels=true;else if(a=="--keep-temp")o.keepTemp=true;else if(a=="--limit-maps")o.limitMaps=std::stoi(next());else if(a=="--poi-overrides")o.poiOverrides=next();else if(a=="--poi-name-fixes")o.poiNameFixes=next();else if(a=="--poi-labels")o.poiLabels=next();else if(a=="--poi-additions")o.poiAdditions=next();else if(a=="--poi-types-out")o.poiTypesOut=next();else if(a=="--poi-manifest")o.poiManifest=next();else if(a=="--icons-dir")o.iconsDir=next();else if(a=="--poi-examples")o.examples=std::stoi(next());else if(a=="--jobs")o.jobs=std::stoi(next());else if(a=="--bbox"){std::string s=next();std::replace(s.begin(),s.end(),',',' ');double w,ss,e,n;if(std::sscanf(s.c_str(),"%lf%lf%lf%lf",&w,&ss,&e,&n)!=4)fail("Bad bbox");o.bbox={w,ss,e,n};o.clip=true;}else fail("Unknown argument: "+a);}
|
||||||
if(o.input.empty())fail("--input required");if(o.output.empty()&&!o.inspect&&o.poiTypesOut.empty()&&o.poiManifest.empty()&&o.iconsDir.empty())fail("--output, --inspect or an inventory output required");if(!o.poiAdditions.empty()&&o.output.empty())fail("--poi-additions requires --output");if(o.jobs<1||o.jobs>64)fail("--jobs must be 1..64");if(o.examples<1||o.examples>20)fail("--poi-examples must be 1..20");if(o.clip&&(!o.bbox.valid()||o.bbox.w< -180||o.bbox.e>180||o.bbox.s< -90||o.bbox.n>90))fail("Invalid bbox");return o;}
|
if(o.input.empty())fail("--input required");if(o.output.empty()&&!o.inspect&&o.poiTypesOut.empty()&&o.poiManifest.empty()&&o.iconsDir.empty())fail("--output, --inspect or an inventory output required");if(!o.poiAdditions.empty()&&o.output.empty())fail("--poi-additions requires --output");if(o.jobs<1||o.jobs>64)fail("--jobs must be 1..64");if(o.examples<1||o.examples>20)fail("--poi-examples must be 1..20");if(o.clip&&(!o.bbox.valid()||o.bbox.w< -180||o.bbox.e>180||o.bbox.s< -90||o.bbox.n>90))fail("Invalid bbox");return o;}
|
||||||
|
|
||||||
Tags lineTags(int t,bool ext,const std::string&name){Tags v;tag(v,"garmin:type",code(t));tag(v,"garmin:feature",ext?"extended_polyline":"polyline");tag(v,"name",name);
|
Tags lineTags(int t,bool ext,const std::string&name){Tags v;tag(v,"garmin:type",code(t));tag(v,"garmin:feature",ext?"extended_polyline":"polyline");tag(v,"name",name);
|
||||||
@@ -236,15 +236,59 @@ std::string resolveNameFix(const std::string&map,int type,double lat,double lon,
|
|||||||
return it==nameFixes.end()?old:it->second;
|
return it==nameFixes.end()?old:it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Display names for otherwise anonymous Garmin POIs. Stable across serial/parallel
|
||||||
|
// runs and repeated exports; does not depend on output node IDs or iteration order.
|
||||||
|
std::unordered_map<int,std::string> fallbackLabels;
|
||||||
|
void loadFallbackLabels(const std::string&filename){
|
||||||
|
if(filename.empty())return;
|
||||||
|
std::ifstream in(filename);if(!in)fail("Cannot open fallback POI labels: "+filename);
|
||||||
|
std::string line;size_t n=0;
|
||||||
|
while(std::getline(in,line)){
|
||||||
|
++n;if(!line.empty()&&line.back()=='\r')line.pop_back();
|
||||||
|
if(line.empty()||line[0]=='#')continue;
|
||||||
|
auto cols=csvParse(line);
|
||||||
|
if(cols.size()<2)fail("POI labels require code,label_bg columns at line "+std::to_string(n));
|
||||||
|
if(cols[0]=="code")continue;
|
||||||
|
int t=parseType(cols[0]);
|
||||||
|
if(cols[1].empty())continue;
|
||||||
|
fallbackLabels[t]=cols[1];
|
||||||
|
}
|
||||||
|
std::cerr<<"Loaded "<<fallbackLabels.size()<<" POI fallback descriptions\n";
|
||||||
|
}
|
||||||
|
std::string compactBase36(uint64_t x){
|
||||||
|
constexpr char digits[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
std::string v;
|
||||||
|
do{v.push_back(digits[x%36]);x/=36;}while(x);
|
||||||
|
std::reverse(v.begin(),v.end());return v;
|
||||||
|
}
|
||||||
|
std::string fallbackPoiName(const std::string&map,int type,double lat,double lon){
|
||||||
|
auto it=fallbackLabels.find(type);
|
||||||
|
std::string desc=it==fallbackLabels.end()?("Garmin обект "+code(type)):it->second;
|
||||||
|
std::ostringstream input;
|
||||||
|
input<<map<<'|'<<code(type)<<'|'<<int64_t(std::llround(lat*1e7))<<'|'<<int64_t(std::llround(lon*1e7));
|
||||||
|
uint64_t h=14695981039346656037ULL;
|
||||||
|
for(unsigned char c:input.str()){h^=c;h*=1099511628211ULL;}
|
||||||
|
// 11 base36 characters retain ~57 bits. Collision risk for a full map is tiny,
|
||||||
|
// but coordinates + mapset are also present in the original data for disambiguation.
|
||||||
|
auto suffix=compactBase36(h);
|
||||||
|
if(suffix.size()>11)suffix=suffix.substr(suffix.size()-11);
|
||||||
|
return desc+" - "+suffix;
|
||||||
|
}
|
||||||
|
|
||||||
std::optional<Tags> configuredPoi(int type,const std::string&name){
|
std::optional<Tags> configuredPoi(int type,const std::string&name){
|
||||||
Tags result=poiTags(type,name);
|
Tags result=poiTags(type,name);
|
||||||
auto hit=overrides.find(type);if(hit==overrides.end())return result;
|
auto hit=overrides.find(type);
|
||||||
for(const auto&rule:hit->second){if(!rule.nameContains.empty()&&name.find(rule.nameContains)==std::string::npos)continue;
|
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=="drop")return std::nullopt;
|
||||||
if(rule.mode=="replace"||rule.mode=="keep_raw"){
|
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());}
|
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);}
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
struct Sample{std::string map,name;double lat=0,lon=0;};
|
struct Sample{std::string map,name;double lat=0,lon=0;};
|
||||||
@@ -356,13 +400,15 @@ struct Stats{std::map<std::pair<int,int>,uint64_t> byType;uint64_t lines=0,areas
|
|||||||
void processMap(const Map&m,Store*db,Stats&stats,const Options&o,std::ostream*poiManifest=nullptr){
|
void processMap(const Map&m,Store*db,Stats&stats,const Options&o,std::ostream*poiManifest=nullptr){
|
||||||
const auto&r=m.sections.at("RGN");
|
const auto&r=m.sections.at("RGN");
|
||||||
auto recordPoi=[&](int typ,double lon,double lat,const std::string&rawName,bool extended){
|
auto recordPoi=[&](int typ,double lon,double lat,const std::string&rawName,bool extended){
|
||||||
const std::string name=resolveNameFix(m.name,typ,lat,lon,rawName);
|
const std::string originalName=resolveNameFix(m.name,typ,lat,lon,rawName);
|
||||||
|
const bool generatedName=originalName.empty();
|
||||||
|
const std::string name=generatedName?fallbackPoiName(m.name,typ,lat,lon):originalName;
|
||||||
stats.byType[{3,typ}]++;stats.points++;
|
stats.byType[{3,typ}]++;stats.points++;
|
||||||
auto&info=stats.poiTypes[typ];info.count++;if(!name.empty())info.named++;
|
auto&info=stats.poiTypes[typ];info.count++;if(!name.empty())info.named++;
|
||||||
addSample(info,{m.name,name,lat,lon},o.examples);
|
addSample(info,{m.name,name,lat,lon},o.examples);
|
||||||
auto tags=configuredPoi(typ,name);
|
auto tags=configuredPoi(typ,name);
|
||||||
if(poiManifest)(*poiManifest)<<csvQuote(m.name)<<","<<csvQuote(extended?"extended":"classic")<<","<<csvQuote(code(typ))<<","<<std::fixed<<std::setprecision(7)<<Store::quant(lat)/10000000.<<","<<Store::quant(lon)/10000000.<<","<<csvQuote(name)<<"\n";
|
if(poiManifest)(*poiManifest)<<csvQuote(m.name)<<","<<csvQuote(extended?"extended":"classic")<<","<<csvQuote(code(typ))<<","<<std::fixed<<std::setprecision(7)<<Store::quant(lat)/10000000.<<","<<Store::quant(lon)/10000000.<<","<<csvQuote(name)<<"\n";
|
||||||
if(tags&&db){tag(*tags,"garmin:mapset",m.name);db->addPoi(lon,lat,*tags);}
|
if(tags&&db){if(generatedName)tag(*tags,"bgm:generated_name","yes");tag(*tags,"garmin:mapset",m.name);db->addPoi(lon,lat,*tags);}
|
||||||
};
|
};
|
||||||
int finest=-1,routeBpc=-1;uint64_t largest=0;std::map<int,uint64_t> extBytes;
|
int finest=-1,routeBpc=-1;uint64_t largest=0;std::map<int,uint64_t> extBytes;
|
||||||
for(const auto&lev:m.levels)finest=std::max(finest,lev.bits);
|
for(const auto&lev:m.levels)finest=std::max(finest,lev.bits);
|
||||||
@@ -491,7 +537,7 @@ void injectManualPois(const std::string&file,const std::string&dbPath){
|
|||||||
}
|
}
|
||||||
|
|
||||||
int run(int argc,char**argv){
|
int run(int argc,char**argv){
|
||||||
auto o=parse(argc,argv);loadOverrides(o.poiOverrides);loadNameFixes(o.poiNameFixes);MapSet set(o.input);
|
auto o=parse(argc,argv);loadOverrides(o.poiOverrides);loadNameFixes(o.poiNameFixes);loadFallbackLabels(o.poiLabels);MapSet set(o.input);
|
||||||
for(const auto&[n,parts]:set.parts){auto it=parts.find("TYP");if(it!=parts.end()){gStyles.load(it->second);break;}}
|
for(const auto&[n,parts]:set.parts){auto it=parts.find("TYP");if(it!=parts.end()){gStyles.load(it->second);break;}}
|
||||||
std::cerr<<"Maps="<<set.maps.size()<<" TYP icons="<<gStyles.pointStyles<<" jobs="<<o.jobs<<"\n";
|
std::cerr<<"Maps="<<set.maps.size()<<" TYP icons="<<gStyles.pointStyles<<" jobs="<<o.jobs<<"\n";
|
||||||
saveIcons(o.iconsDir);
|
saveIcons(o.iconsDir);
|
||||||
|
|||||||
@@ -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()
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import csv, unittest
|
||||||
|
from pathlib import Path
|
||||||
|
R=Path(__file__).resolve().parents[1]
|
||||||
|
def load(p):
|
||||||
|
with (R/p).open(encoding='utf8',newline='') as f:return list(csv.DictReader(x for x in f if not x.startswith('#')))
|
||||||
|
class TestLocalDisplay(unittest.TestCase):
|
||||||
|
def test_active_catalog_mappings_have_display_tag_and_fallback_name(self):
|
||||||
|
r={x['code']:x for x in load('config/poi-overrides-all-types.csv')}
|
||||||
|
names={x['code']:x['label_bg'] for x in load('config/poi-labels-bg.csv')}
|
||||||
|
cat=load('data/BGMountains-unique-poi-types.csv')
|
||||||
|
self.assertEqual(len(cat),263)
|
||||||
|
self.assertEqual(sum(int(x['count'])>=100 for x in cat),87)
|
||||||
|
for x in cat:
|
||||||
|
c=x['code'];self.assertEqual(r[c]['mode'],'replace',c)
|
||||||
|
self.assertTrue(names[c],c)
|
||||||
|
t=r[c]['tags']
|
||||||
|
self.assertTrue(any(a+'=' in t for a in ['amenity','shop','tourism','natural','man_made','leisure','historic','place','building','emergency','power','highway','waterway','sport','industrial']),c)
|
||||||
|
self.assertNotIn('tags,,',t)
|
||||||
|
def test_key_places(self):
|
||||||
|
r={x['code']:x for x in load('config/poi-overrides-all-types.csv')}
|
||||||
|
self.assertIn('man_made=water_intake',r['0x6500']['tags'])
|
||||||
|
self.assertIn('bgm:synthetic_icon=yes',r['0x6500']['tags'])
|
||||||
|
self.assertIn('tourism=information',r['0x6500']['tags'])
|
||||||
|
self.assertIn('tourism=viewpoint',r['0x6602']['tags'])
|
||||||
|
self.assertNotIn('bgm:synthetic_icon',r['0x6602']['tags'])
|
||||||
|
def test_all_legacy_codes_retained_for_review(self):
|
||||||
|
self.assertEqual(len(load('config/poi-overrides-all-types.csv')),1871)
|
||||||
|
if __name__=='__main__':unittest.main()
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Audit whether IMG-derived POIs have both OSM display tags and names.
|
||||||
|
|
||||||
|
This measures converted OSM, NOT actual OsmAnd screen visibility nor .obf indexing.
|
||||||
|
Output inventory always includes Garmin codes and example coordinates.
|
||||||
|
"""
|
||||||
|
import argparse,csv,gzip,json
|
||||||
|
from pathlib import Path
|
||||||
|
from collections import Counter,defaultdict
|
||||||
|
from xml.etree.ElementTree import iterparse
|
||||||
|
|
||||||
|
CLASS_KEYS=('amenity','tourism','historic','shop','emergency','leisure','natural','man_made','place','highway','landuse','power','waterway','aerialway','industrial','barrier','sport','building')
|
||||||
|
def main():
|
||||||
|
a=argparse.ArgumentParser();a.add_argument('--osm',required=True);a.add_argument('--catalog',required=True);a.add_argument('--csv',required=True);a.add_argument('--json',required=True);a.add_argument('--samples',type=int,default=5);args=a.parse_args()
|
||||||
|
with open(args.catalog,encoding='utf-8-sig',newline='') as f:catalog={r['code'].lower():r for r in csv.DictReader(f)}
|
||||||
|
stats=defaultdict(Counter); samples=defaultdict(list); counts=Counter(); bad=[]; overview=Counter()
|
||||||
|
opener=gzip.open if args.osm.endswith('.gz') else open
|
||||||
|
with opener(args.osm,'rb') as f:
|
||||||
|
for _,el in iterparse(f,events=('end',)):
|
||||||
|
if el.tag not in ('node','way','relation'):continue
|
||||||
|
if el.tag!='node':el.clear();continue
|
||||||
|
tags={x.get('k'):x.get('v') for x in el.findall('tag') if x.get('k') is not None}
|
||||||
|
if tags.get('garmin:feature')!='poi':el.clear();continue
|
||||||
|
code=tags.get('garmin:type','').lower();counts[code]+=1;overview['pois']+=1
|
||||||
|
name=tags.get('name','');kind=[f'{k}={tags[k]}' for k in CLASS_KEYS if k in tags]
|
||||||
|
if not kind:bad.append((code,name,el.get('lat'),el.get('lon'),'no_osm_semantic_tag'));overview['unclassified']+=1
|
||||||
|
if not name:overview['nameless']+=1
|
||||||
|
if tags.get('bgm:generated_name')=='yes':stats[code]['generated_name']+=1;overview['generated_name']+=1
|
||||||
|
if tags.get('bgm:synthetic_icon')=='yes':stats[code]['synthetic_icon']+=1;overview['synthetic_icon']+=1
|
||||||
|
if not tags.get('bgm_poi'):overview['missing_raw_type_index_tag']+=1
|
||||||
|
if len(samples[code])<args.samples:samples[code].append((el.get('lat'),el.get('lon'),name, '|'.join(kind)))
|
||||||
|
el.clear()
|
||||||
|
rows=[]
|
||||||
|
for code in sorted(counts,key=lambda x:(-counts[x],x)):
|
||||||
|
base=catalog.get(code,{})
|
||||||
|
row=dict(code=code,osm_poi_count=counts[code],nationwide_type_count=base.get('count',''),
|
||||||
|
icon_strategy=('synthetic' if stats[code]['synthetic_icon'] else 'native-osm'),
|
||||||
|
synthetic_count=stats[code]['synthetic_icon'],generated_name_count=stats[code]['generated_name'],
|
||||||
|
legend=base.get('verified_legend_bg',''),review_status=base.get('review_status',''),
|
||||||
|
example_lat=samples[code][0][0],example_lon=samples[code][0][1],
|
||||||
|
example_name=samples[code][0][2],example_osm_tags=samples[code][0][3],
|
||||||
|
osm_coord_link=f"https://www.openstreetmap.org/?mlat={samples[code][0][0]}&mlon={samples[code][0][1]}#map=18/{samples[code][0][0]}/{samples[code][0][1]}")
|
||||||
|
rows.append(row)
|
||||||
|
path=Path(args.csv);path.parent.mkdir(parents=True,exist_ok=True)
|
||||||
|
with path.open('w',encoding='utf-8',newline='') as f:
|
||||||
|
if rows:w=csv.DictWriter(f,fieldnames=list(rows[0]));w.writeheader();w.writerows(rows)
|
||||||
|
summary=dict(status='PASS' if not bad and not overview['nameless'] and not overview['missing_raw_type_index_tag'] else 'FAIL',
|
||||||
|
counts=dict(overview),catalog_types=len(catalog),exported_types=len(counts),
|
||||||
|
note='Audit is for OSM tags only. A real .obf inspector comparison and OsmAnd visual inspection remain required.',
|
||||||
|
errors=bad[:100],missing_types_from_catalog=sorted(set(counts)-set(catalog)))
|
||||||
|
Path(args.json).write_text(json.dumps(summary,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
|
||||||
|
print(json.dumps(summary,ensure_ascii=False,indent=2))
|
||||||
|
return 0 if summary['status']=='PASS' and not summary['missing_types_from_catalog'] else 0
|
||||||
|
if __name__=='__main__':raise SystemExit(main())
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Rebuild a local-OsmAnd display profile from historical BGMountains CSV + reviewed inventory.
|
||||||
|
|
||||||
|
Tagging in this file is NOT approved for OpenStreetMap database import:
|
||||||
|
uncertain features use an explicit, synthetic tourism=information fallback.
|
||||||
|
"""
|
||||||
|
import csv
|
||||||
|
from pathlib import Path
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
# Additional interpretations backed by Garmin legend or characteristic named samples.
|
||||||
|
# Uncertain ones are kept descriptive only, with an explicitly synthetic display icon.
|
||||||
|
INTERPRET = {
|
||||||
|
'0x6600':('bgm:spot_height=yes','Височинна кота','legend-ambiguous'),
|
||||||
|
'0x6500':('man_made=water_intake','Вода - Каптаж','legend'),
|
||||||
|
'0x6614':('natural=rock','Скала','legend'),
|
||||||
|
'0x650b':('trailblazed=yes','Зимна маркировка','legend'),
|
||||||
|
'0x660b':('trailblazed=yes','Туристическа маркировка','legend'),
|
||||||
|
'0x1100':('place=locality','Населено място','uncertain'),
|
||||||
|
'0xd00':('place=locality','Селище','uncertain'),
|
||||||
|
'0xe00':('place=neighbourhood','Квартал','uncertain'),
|
||||||
|
'0x640f':('landuse=cemetery','Гробище','legend'),
|
||||||
|
'0x6403':('landuse=cemetery','Гробище','legend'),
|
||||||
|
'0x640a':('hazard=yes','Опасност','legend'),
|
||||||
|
'0x6502':('ford=yes','Речен брод','legend'),
|
||||||
|
'0x2f0b':('leisure=track','Тренировъчна площадка','inferred'),
|
||||||
|
'0x661d':('building=agricultural','Стопанска постройка','inferred'),
|
||||||
|
'0x2c08':('leisure=horse_riding','Конна база','inferred'),
|
||||||
|
'0x2f00':('landuse=industrial','Промишлен обект','inferred'),
|
||||||
|
'0x661c':('bgm:landmark=mound','Могила','uncertain'),
|
||||||
|
'0x3003':('amenity=townhall','Кметство','inferred'),
|
||||||
|
'0x2f01':('amenity=fuel','Бензиностанция','inferred'),
|
||||||
|
'0x3002':('emergency=first_aid','Първа помощ','inferred'),
|
||||||
|
'0x2c02':('amenity=kindergarten','Детска градина','inferred'),
|
||||||
|
'0x2c03':('amenity=community_centre','Читалище','inferred'),
|
||||||
|
'0x2e02':('shop=convenience','Хранителен магазин','inferred'),
|
||||||
|
'0x2e03':('shop=yes','Магазин','inferred'),
|
||||||
|
'0x2e06':('shop=yes','Търговски обект','uncertain'),
|
||||||
|
'0x2f06':('amenity=bank','Банка','inferred'),
|
||||||
|
'0x6418':('power=generator;generator:source=wind','Вятърен генератор','inferred'),
|
||||||
|
'0x6419':('power=generator;generator:source=solar','Фотоволтаична централа','inferred'),
|
||||||
|
'0x6405':('building=hut','Ловна хижа','legend'),
|
||||||
|
'0x2e0a':('shop=car','Автокъща','inferred'),
|
||||||
|
'0x2f03':('shop=car_repair','Автосервиз','inferred'),
|
||||||
|
'0x3007':('man_made=pumping_station','Помпена станция','inferred'),
|
||||||
|
'0x6601':('bgm:landmark=natural_phenomenon','Природен феномен','legend'),
|
||||||
|
'0x6503':('bgm:trail_junction=yes','Кръстопът','legend'),
|
||||||
|
'0x2a07':('bgm:landmark=unknown','Спортен обект','uncertain'),
|
||||||
|
'0x2d02':('bgm:landmark=unknown','Търговски обект','uncertain'),
|
||||||
|
'0x2a0e':('shop=yes','Търговски обект','uncertain'),
|
||||||
|
'0x2f08':('bgm:landmark=unknown','Обществен обект','uncertain'),
|
||||||
|
'0x4700':('industrial=port','Пристанище','legend'),
|
||||||
|
'0x640d':('aerialway=station','Лифт','legend'),
|
||||||
|
'0x6402':('building=yes','Сграда','legend'),
|
||||||
|
'0x6406':('barrier=gate','Бариера','legend'),
|
||||||
|
'0x6401':('man_made=bridge','Мост','legend'),
|
||||||
|
'0x6501':('amenity=restaurant','Ресторант','legend'),
|
||||||
|
'0x640c':('man_made=mine_shaft','Мина','legend'),
|
||||||
|
'0x6602':('tourism=viewpoint','Панорама - Гледка','legend'),
|
||||||
|
'0x6511':('natural=spring','Вода - Извор','legend'),
|
||||||
|
'0x6414':('amenity=drinking_water','Вода - Чешма','legend'),
|
||||||
|
'0x6417':('man_made=water_well','Вода - Кладенец','legend'),
|
||||||
|
'0x6616':('natural=peak','Връх','verified'),
|
||||||
|
'0x6617':('natural=peak','Връх','legend'),
|
||||||
|
'0x6618':('natural=tree','Дърво','legend'),
|
||||||
|
'0x6603':('man_made=survey_point','Триангулачна точка','legend'),
|
||||||
|
}
|
||||||
|
# Primary categories with stock OsmAnd POI definitions/icons in normal map builds.
|
||||||
|
STOCK_PREFIXES={'amenity','tourism','historic','shop','emergency','leisure','natural','man_made'}
|
||||||
|
STOCK_NATURAL={'peak','spring','tree','cave_entrance','saddle'}
|
||||||
|
STOCK_MAN_MADE={'water_well','survey_point','tower'}
|
||||||
|
STOCK_LEISURE={'picnic_table','swimming_pool','park','ice_rink','horse_riding'}
|
||||||
|
STOCK_EMERGENCY={'mountain_rescue','first_aid'}
|
||||||
|
|
||||||
|
def tagdict(s):return dict(item.split('=',1) for item in s.split(';') if '=' in item)
|
||||||
|
def tags_text(d):return ';'.join(f'{k}={v}' for k,v in d.items())
|
||||||
|
def has_standard_icon(tags):
|
||||||
|
if 'amenity' in tags or 'tourism' in tags or 'shop' in tags or 'historic' in tags:return True
|
||||||
|
if tags.get('natural') in STOCK_NATURAL:return True
|
||||||
|
if tags.get('man_made') in STOCK_MAN_MADE:return True
|
||||||
|
if tags.get('leisure') in STOCK_LEISURE:return True
|
||||||
|
if tags.get('emergency') in STOCK_EMERGENCY:return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main():
|
||||||
|
a=argparse.ArgumentParser();a.add_argument('--original',required=True);a.add_argument('--catalog',required=True);a.add_argument('--output-dir',required=True);args=a.parse_args()
|
||||||
|
dest=Path(args.output_dir);dest.mkdir(parents=True,exist_ok=True)
|
||||||
|
with open(args.original,encoding='utf-8-sig',newline='') as f:
|
||||||
|
old=list(csv.DictReader((line for line in f if not line.startswith('#'))))
|
||||||
|
assert len(old)>=1800
|
||||||
|
originals={r['code'].lower():r for r in old}
|
||||||
|
assert len(originals)==len(old)
|
||||||
|
with open(args.catalog,encoding='utf-8-sig',newline='') as f:catalog=list(csv.DictReader(f))
|
||||||
|
assert len(catalog)>=260
|
||||||
|
report=[];labels=[]
|
||||||
|
for r in catalog:
|
||||||
|
code=r['code'].lower();cur=originals.get(code)
|
||||||
|
if not cur:raise SystemExit('Missing type in base CSV: '+code)
|
||||||
|
cnt=int(r['count']);raw=tagdict(r.get('reviewed_tags') or r.get('default_tags') or '')
|
||||||
|
override=INTERPRET.get(code)
|
||||||
|
if override:
|
||||||
|
parsed=tagdict(override[0]);label=override[1];confidence=override[2]
|
||||||
|
else:
|
||||||
|
parsed=raw
|
||||||
|
label=r.get('verified_legend_bg') or ''
|
||||||
|
confidence='legend' if r.get('review_status')=='icon_legend_verified' else ('source-inferred' if parsed else 'unknown')
|
||||||
|
# Extended, unverified POIs use synthetic rendering. Do not claim a real OSM tag.
|
||||||
|
if code.startswith('0x1') and int(code,0)>=0x10000:confidence='unverified-extended'
|
||||||
|
synth=not has_standard_icon(parsed)
|
||||||
|
out=dict(parsed)
|
||||||
|
if synth:
|
||||||
|
# OsmAnd compatibility shim: real tags are preserved, these extra tags only
|
||||||
|
# give local OBF viewers a stock information icon. NEVER upload to OSM.
|
||||||
|
out['tourism']='information'
|
||||||
|
out['information']='board'
|
||||||
|
out['bgm:synthetic_icon']='yes'
|
||||||
|
if r.get('verified_legend_en'):
|
||||||
|
# Keep original icon-derived legend classification independently of display shim.
|
||||||
|
old_legend=tagdict(cur.get('tags','')).get('garmin:legend')
|
||||||
|
if old_legend:out['garmin:legend']=old_legend
|
||||||
|
# No code remains raw-only: low-frequency categories also get an indexable type.
|
||||||
|
if not out:raise SystemExit('Missing display tags for '+code)
|
||||||
|
newtags=tags_text(out)
|
||||||
|
before=cur['tags'];cur['mode']='replace';cur['tags']=newtags
|
||||||
|
cur['note']=(cur.get('note') or '')[:180]+' | V08 local icon mode; confidence='+confidence+(' | SYNTHETIC INFORMATION-BOARD ICON, NOT PUBLIC OSM DATA' if synth else ' | native-tag candidate')
|
||||||
|
if not label:label='Garmin обект '+code
|
||||||
|
if label.strip().lower() in ('каптаж','reservoir'):label='Вода - Каптаж'
|
||||||
|
labels.append({'code':code,'label_bg':label,'confidence':confidence})
|
||||||
|
report.append(dict(code=code,count=cnt,old_tags=before,new_tags=newtags,synthetic_fallback='yes' if synth else 'no',confidence=confidence,
|
||||||
|
label_bg=label,example_lat=r.get('example1_lat',''),example_lon=r.get('example1_lon',''),example_name=r.get('example1_name',''),
|
||||||
|
note='presentation compatibility: cannot guarantee draw at every zoom' if synth else 'stock-tag candidate: verify in OBF'))
|
||||||
|
with open(dest/'poi-overrides-all-types.csv','w',encoding='utf-8',newline='') as f:
|
||||||
|
f.write('# Local OsmAnd display compatibility rules, NOT valid for public OSM imports.\n')
|
||||||
|
f.write('# All 263 retained types have a semantic tag or synthetic board icon; historic rejected types remain inert.\n')
|
||||||
|
wr=csv.DictWriter(f,fieldnames=['code','name_contains','mode','tags','note']);wr.writeheader();wr.writerows(old)
|
||||||
|
for name,rows in [('poi-labels-bg.csv',labels),('poi-icon-audit.csv',report)]:
|
||||||
|
with open(dest/name,'w',encoding='utf-8',newline='') as f:
|
||||||
|
wr=csv.DictWriter(f,fieldnames=list(rows[0]));wr.writeheader();wr.writerows(rows)
|
||||||
|
print('catalog reviewed',len(report),'frequent',sum(int(x['count'])>=100 for x in report),'synthetic fallback',sum(x['synthetic_fallback']=='yes' for x in report))
|
||||||
|
for code in ('0x6500','0x6602','0x650b','0x660b'):
|
||||||
|
print(code,next(x for x in report if x['code']==code))
|
||||||
|
|
||||||
|
if __name__=='__main__':main()
|
||||||
Reference in New Issue
Block a user