WIP: [styles] Let tourism attractions keep using their normal icons #3351
Draft
yannikbloscheck
wants to merge 1 commit from
yannikbloscheck-tourism-attraction-icons into main
pull from: yannikbloscheck-tourism-attraction-icons
merge into: comaps:main
comaps:main
comaps:pastk-relnotes
comaps:generate-260207
comaps:zy-mwm-pano
comaps:zy-countries-versioning
comaps:x7z4w-cuisine
comaps:jb_capacity_tags
comaps:x7z4w-patch-2
comaps:noelclick-allow-remote-countries-txt
comaps:jb_cnt_fr_regions
comaps:jb_rooms_tag
comaps:x7z4w-map
comaps:yannikbloscheck-unify-translations
comaps:test/2026.02.03
comaps:generate-260202-debug-test
comaps:generate-260201-test
comaps:yannikbloscheck-ios-downloader-to-swiftui
comaps:yannikbloscheck-modes
comaps:yannikbloscheck-ios-trackpad-support
comaps:zy-mwm-intent
comaps:traffic
comaps:patepelo-install_docs
comaps:release/2026.01.24
comaps:yannikbloscheck-tree-row
comaps:jb_3d_layer
comaps:jb_dlt_list
comaps:hbond-confirm-editor-pending
comaps:generate-260122
comaps:test/2026.01.20
comaps:generate-260118-test
comaps:zy-panoramax
comaps:zy-pano-build
comaps:zy-live-location
comaps:pastk-mapgen-pbf-update-verbose
comaps:test/2026.01.09
comaps:test/next
comaps:release/2026.01.08
comaps:generate-260106
comaps:test/2026.01.03
comaps:pastk-om-route-building-buttons
comaps:generate-260101-test
comaps:zyphlar-patch-5
comaps:test/2025.12.29
comaps:pastk-TMP-disable-fr1
comaps:release/2025.12.28
comaps:generate-251227
comaps:release/2025.12.19
comaps:generate-251217
comaps:test/2025.12.17
comaps:zy-panoramax-selector
comaps:test/2025.12.11
comaps:release/2025.12.11
comaps:generate-251209
comaps:zyphlar-patch-1
comaps:test/2025.12.05
comaps:generate-251205-test
comaps:generate-251203
comaps:generate-next
comaps:release/2025.11.25
comaps:release/2025.11.19
comaps:generate-251116
comaps:test/2025.11.15
comaps:patepelo-more_countries_synonyms
comaps:generate-251112-test
comaps:yannikbloscheck-fix-openlr-xcode
comaps:yannikbloscheck-more-cuisines
comaps:x7z4w-traffic
comaps:yannikbloscheck-layers-leftbutton
comaps:release/2025.11.07
comaps:generate-251104
comaps:release/2025.11.01
comaps:release/2025.10.16-fdroid
comaps:x7z4w-patch-4
comaps:release/2025.10.16
comaps:release/2025.10.09
comaps:release/2025.10.08
comaps:release/2025.10.02
comaps:generate-250906
comaps:pastk-mapgen-world-detail-optimize
comaps:generate-250902-test
comaps:release/2025.08.31
comaps:hb0nd-exit-noui
comaps:map-per-pedestrian-area
comaps:test/2025.08.24
comaps:test/2025.08.22
comaps:generate-250822
comaps:pastk-ios-reformat
comaps:release/2025.08.13
comaps:pastk-om-batch-31-android-bm-colors
comaps:pastk-gplay-metadata
comaps:release/2025.07.23
comaps:hb0nd-layers-leftbutton
comaps:generate-250804
comaps:fix-ci
comaps:test/2025.08.03
comaps:hb0nd-url-umlauts
comaps:pastk-android-GS-cert-fix
comaps:always-update-fast
comaps:test/2025.07.20
comaps:test/2025.07.10
comaps:release/2025.06.30
comaps:test/2025.06.27
comaps:release/2025.06.25-apple
comaps:release/2025.06.22
comaps:pastk-gen-isolines
comaps:test/2025.06.19
comaps:test/2025.06.16
comaps:test/2025.06.12
comaps:release/2025.06.10
comaps:test/2025.06.08
comaps:release/2025.06.01
comaps:zyphlar-patch-2
comaps:delete_passed_intermediate_points
comaps:generator-kayak
No reviewers
Labels
Clear labels
Visual contrast, screen readers, etc.
Related to addresses, post codes, city/town/village borders
Android app
Android Auto integration
Android Automotive app
Deeplinks and URLs handled by the API
Google Play, App Store, F-Droid, Obtanium, Huawei Gallery, Acressent, Flathub, IzzyOnDroid, etc.
Performance and battery consumption-related problems and optimisations
Related to borders between countries / regions
Something is not working
building of apps
CarPlay integration
Community relations
Contributions are very welcome, get started here
C++ core of the app
Crash reporting
Specific to using a bicycle or similar vehicles
Qt desktop app incl. designer
Voice and visual turn-by-turn directions
Documentation
Map downloader
The C++ map rendering engine
Specific to driving a car or similar vehicles
This issue or pull request already exists
Built-in OSM editor
Contour lines, elevation profiles, ...
New feature
A big idea or a piece of work that requires a lot of effort to implement
F-Droid platform
Places and GPS tracks
A feature is implemented on one platform, but not on another
Fonts
Interested in contributing? Get started here
Need some help
Map features icons
Something is wrong
iOS app
Legal aspects
LibreM, PinePhone and other mobile linuxes
Via GPS, network, etc.
Emulated iOS App or Qt Desktop App specifically related to macOS
Related to OpenStreetMap data
map generation is needed for PR to take full effect
Maps generator
The navigation turn-by-turn app mode
Further information is requested
This is not planned at the moment
Related to or references Organic Maps
Related to Business Hours, off time, holidays, seasonal
Hiking, backcountry cycling, 4WD, etc.
Related to feature metadata, OSM tags that are displayed on the place page
Affects a lot of users or breaks the app
Not urgent or only happens in rare cases
Happens enough to be a concern, but not app-breaking
Privacy aspects
Experimental changes which requite explicit public feedback before continuing with them
Specific to public transport (busses, trams, subways, trains etc.)
Questions and Discussions
Needs more discussion or to be further elaborated
Improving the structure or simplifying the code, improving maintainability
Different depending on the country or region
Regression in the app
Release management
Preview and plan your route
Routing engine
Search inside of the app
Security improvements
Related to OSM, SRTM, Tiger etc.
Map styling, i.e. how features are rendered
The special subway layer
Internal things that have a clear way for implementation and take less than 30 minutes to do
Testing
Track recording
Traffic information (still under development)
Translations and all other kinds of localisation
Text-to-Speech
User interface
User experience
Waiting for something to be done upstream
Specific to walking
Related to the embedded Wikipedia articles
Windows related
The world overview map
accessibility
Visual contrast, screen readers, etc.
addresses
Related to addresses, post codes, city/town/village borders
Android
Android app
Android Auto
Android Auto integration
Android Automotive
Android Automotive app
api
Deeplinks and URLs handled by the API
app stores
Google Play, App Store, F-Droid, Obtanium, Huawei Gallery, Acressent, Flathub, IzzyOnDroid, etc.
battery & performance
Performance and battery consumption-related problems and optimisations
borders
Related to borders between countries / regions
bug
Something is not working
build
building of apps
CarPlay
CarPlay integration
community
Community relations
contribution welcome
Contributions are very welcome, get started here
core
C++ core of the app
crash
Crash reporting
cycling
Specific to using a bicycle or similar vehicles
desktop
Qt desktop app incl. designer
devops
directions
Voice and visual turn-by-turn directions
docs
Documentation
downloader
Map downloader
drape
The C++ map rendering engine
driving
Specific to driving a car or similar vehicles
duplicate
This issue or pull request already exists
editor
Built-in OSM editor
elevation
Contour lines, elevation profiles, ...
enhancement
New feature
EPIC
A big idea or a piece of work that requires a lot of effort to implement
F-Droid
F-Droid platform
favourites
Places and GPS tracks
feature parity
A feature is implemented on one platform, but not on another
fonts
Fonts
good first issue
Interested in contributing? Get started here
help wanted
Need some help
icons
Map features icons
invalid
Something is wrong
iOS
iOS app
legal
Legal aspects
linux phone
LibreM, PinePhone and other mobile linuxes
location
Via GPS, network, etc.
macOS
Emulated iOS App or Qt Desktop App specifically related to macOS
map data
Related to OpenStreetMap data
mapgen needed
map generation is needed for PR to take full effect
maps generator
Maps generator
navigation
The navigation turn-by-turn app mode
need feedback
Further information is requested
not planned
This is not planned at the moment
OM
Related to or references Organic Maps
opening hours
Related to Business Hours, off time, holidays, seasonal
outdoor
Hiking, backcountry cycling, 4WD, etc.
POI info
Related to feature metadata, OSM tags that are displayed on the place page
priority
High
Affects a lot of users or breaks the app
priority
Low
Not urgent or only happens in rare cases
priority
Medium
Happens enough to be a concern, but not app-breaking
privacy
Privacy aspects
public feedback needed
Experimental changes which requite explicit public feedback before continuing with them
public transport
Specific to public transport (busses, trams, subways, trains etc.)
question
Questions and Discussions
raw idea
Needs more discussion or to be further elaborated
refactoring
Improving the structure or simplifying the code, improving maintainability
regional
Different depending on the country or region
regression
Regression in the app
releases
Release management
route planning
Preview and plan your route
routing
Routing engine
search
Search inside of the app
security
Security improvements
source data
Related to OSM, SRTM, Tiger etc.
styles
Map styling, i.e. how features are rendered
subway
The special subway layer
task
Internal things that have a clear way for implementation and take less than 30 minutes to do
tests
Testing
track recording
Track recording
traffic
Traffic information (still under development)
translations
Translations and all other kinds of localisation
TTS
Text-to-Speech
UI
User interface
UX
User experience
wait for upstream
Waiting for something to be done upstream
walking
Specific to walking
Wikipedia
Related to the embedded Wikipedia articles
Windows
Windows related
world map
The world overview map
No labels
accessibility
addresses
Android
Android Auto
Android Automotive
api
app stores
battery & performance
borders
bug
build
CarPlay
community
contribution welcome
core
crash
cycling
desktop
devops
directions
docs
downloader
drape
driving
duplicate
editor
elevation
enhancement
EPIC
F-Droid
favourites
feature parity
fonts
good first issue
help wanted
icons
invalid
iOS
legal
linux phone
location
macOS
map data
mapgen needed
maps generator
navigation
need feedback
not planned
OM
opening hours
outdoor
POI info
priority
High
priority
Low
priority
Medium
privacy
public feedback needed
public transport
question
raw idea
refactoring
regional
regression
releases
route planning
routing
search
security
source data
styles
subway
task
tests
track recording
traffic
translations
TTS
UI
UX
wait for upstream
walking
Wikipedia
Windows
world map
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
comaps/comaps!3351
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "yannikbloscheck-tourism-attraction-icons"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #2553
POIs with the
tourism=attractiontag still get the same higher priority as beforeThere are various issues with current attraction implementations indeed and we need to solve them.
However this change as-is will basically make attractions disappear from the map:
I.e. even when zoomed in enough for an attraction POI X to appear, it won't be any different from other surrounding non-attraction POI Xs.
(keeping its priority higher helps a bit, but incomparable to drastic visibility loss)
@ -1364,3 +1364,3 @@historic|castle|defensive;[historic=castle][castle_type=defensive];;name;int_name;1234;historic|castle|stately;[historic=castle][castle_type=stately];;name;int_name;1235;attraction|animal;1236;attraction|animal;[attraction=animal],[tourism=attraction][attraction=animal];;name;int_name;1236;nit: remove useless
name;int_namehere and below@ -1744,3 +1739,1 @@attraction|historic;1614;attraction|big_wheel;1615;attraction|bumper_car;1616;attraction|water_slide;[attraction=water_slide],[tourism=attraction][attraction=water_slide];;name;int_name;1609;I guess your intention here is to get rid of a separate
tourism-attractiontype for such POIs?Have you tested it?
I'm pretty sure "tourism=attraction attraction=water_slide" would still produce two separate types
tourism-attractionandattraction-water_slideThis should prevent it:
tourism|attraction;[tourism=attraction][!attraction];;;;147;I have tested it and they are still both appearing because of some special code for attractions, which is fine, but if that code ever gets changed, I want to make sure it disappears. That's why I added this despite basically no current effect.
@ -593,3 +592,3 @@node|z16-[historic=tomb],node|z16-[tourism=aquarium],node|z17-[attraction=animal],node|z16-[attraction=animal],why change? its often an animal cage in a zoo and it could be plenty of them
compared to it, many other attraction=* objects e.g. big_wheel, maze, roller_coaster are much more unique and prominent
Because I looked at a zoo to have an overview and the animal cages weren't visible. If I look at zoo on a map, I want to see where which animals are. At zoom level 17 I don't have any overview of the zoo anymore. I'm also not against putting the other attraction types one zoom level up.
@ -606,6 +605,7 @@ node|z17-[historic=archaeological_site],node|z17-[historic=gallows],node|z17-[historic=pillory],node|z17-[amenity=arts_centre],node|z18-[tourism=attraction],There are still attractions mapped with only tourism=attraction tag and this would reduce their visibility too drastically. I think z15 would make sense, same as e.g. sculptures and memorials..
same goes to the priority, i.e. 1900 is way too low, its lower than most niche shops even
As said in the OSM wiki it is used for a lot of different things and really shouldn't be used alone
the wiki says explicitly
@ -163,6 +163,7 @@ Stylist::Stylist(FeatureType & f, uint8_t zoomLevel, int8_t deviceLang)mainOverlayType = types.front();else{auto const & attractionChecker = ftypes::IsAttractionChecker::Instance();not used? and duplicated below
Yeah, just a leftover from a previous iteration. I'll remove it.
@ -196,2 +199,4 @@if (hasHatching && k.m_type == drule::area)k.m_hatching = true;if (isAttraction && k.m_type == drule::symbol && k.m_priority < 4300)its better to avoid hardcoding priorities like this
@ -729,6 +729,12 @@ IsTaxiChecker::IsTaxiChecker()m_types.push_back(c.GetTypeByPath({"amenity", "taxi"}));}IsAttractionChecker::IsAttractionChecker() : BaseChecker(2 /* level */)nit: please place it next to
AttractionsChecker::AttractionsChecker()and add a comment explaining the differenceTheoretically we could ignore
tourism-attractionto be themainOverlayTypeand always prefer other types to keep their icons. And we can still copy overtourism-attraction's higher priority and min zoom level to the POI drawing rule to keep them more prominent.However still there are two issues with this approach:
-sicon to use on lower zoom levelsA compromise solution would be to still use the star icon on lower zoom levels and switching to the actual POI icon when zoomed in. Not sure it'd look good though, this switching might be confusing - so this would need testing.
One more raw idea is to draw
tourism-attractionicon in the geometry layer so it'd act as an underlay (e.g. just a bigger circle or a star) of the actual POI icon.Also its of course possible to create subtypes like
tourism-artwork-statue-majorwhich would have more prominent styles and even icons. This approach gives the most flexibility and also POIs could be defined as "major" by other factors, e.g. presence of Wiki article, etc. But its manual work for every POI type.I think any icon switching would be indeed just very confusing. Also the problem that all the tourist POIs just look the same is an issue on all zoom levels.
"Here is some tourist attraction" is not of much use, but "Here is tourist attraction of type X" is - especially in many big cities, that are just swamped with tourist attractions.
I agree, that we should try to keep the zoom level.
@pastk wrote in #3351 (comment):
I like the idea in theory (even though it wont work with the geometry layer because of 3D rendering, but we always could add another artificial layer just for it), but not all possible POIs will be circled and that would lead to problems.
Having separate versions for everything is just too much extra work.
[styles] Let tourism attractions keep using their normal iconsto WIP: [styles] Let tourism attractions keep using their normal icons(Temporarily pausing work on it as I currently don't have the mind for this. Will continue with it in a bit.)
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.