From a886270ddade6d672675d4142788c266ba1d4f46 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Tue, 11 Nov 2025 11:56:00 +0100 Subject: [PATCH] [types] Add emergency access points Signed-off-by: Yannik Bloscheck --- android/sdk/src/main/res/values-de/types_strings.xml | 1 + android/sdk/src/main/res/values/types_strings.xml | 1 + data/categories-strings/de.json/localize.json | 1 + data/categories-strings/en.json/localize.json | 1 + data/mapcss-mapping.csv | 2 +- data/replaced_tags.txt | 2 ++ data/styles/default/dark/colors.mapcss | 1 + data/styles/default/dark/symbols/access_point-m.svg | 1 + data/styles/default/dark/symbols/assembly_point-m.svg | 11 +---------- data/styles/default/include/Icons.mapcss | 4 ++++ data/styles/default/include/Icons_Label_Colors.mapcss | 3 +++ .../default/include/priorities_4_overlays.prio.txt | 2 ++ data/styles/default/light/colors.mapcss | 1 + data/styles/default/light/symbols/access_point-m.svg | 1 + .../styles/default/light/symbols/assembly_point-m.svg | 11 +---------- .../outdoors/include/priorities_4_overlays.prio.txt | 2 ++ data/styles/vehicle/dark/colors.mapcss | 1 + data/styles/vehicle/light/colors.mapcss | 1 + generator/feature_builder.cpp | 5 +++++ .../de.lproj/LocalizableTypes.strings | 1 + .../en-GB.lproj/LocalizableTypes.strings | 1 + .../en.lproj/LocalizableTypes.strings | 1 + libs/indexer/ftypes_matcher.cpp | 6 ++++++ libs/indexer/ftypes_matcher.hpp | 8 ++++++++ 24 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 data/styles/default/dark/symbols/access_point-m.svg create mode 100644 data/styles/default/light/symbols/access_point-m.svg diff --git a/android/sdk/src/main/res/values-de/types_strings.xml b/android/sdk/src/main/res/values-de/types_strings.xml index e7d675476..9cc262e33 100644 --- a/android/sdk/src/main/res/values-de/types_strings.xml +++ b/android/sdk/src/main/res/values-de/types_strings.xml @@ -337,6 +337,7 @@ Vegetarisch Vietnamesisch Notfall + Rettungspunkt Notfall-Sammelpunkt Defibrillator Hydrant diff --git a/android/sdk/src/main/res/values/types_strings.xml b/android/sdk/src/main/res/values/types_strings.xml index 8e98ddf2d..940eb0aff 100644 --- a/android/sdk/src/main/res/values/types_strings.xml +++ b/android/sdk/src/main/res/values/types_strings.xml @@ -371,6 +371,7 @@ Vegetarian Vietnamese Emergency + Emergency Rescue Point Emergency Assembly Point Defibrillator Fire Hydrant diff --git a/data/categories-strings/de.json/localize.json b/data/categories-strings/de.json/localize.json index 84cdf2d83..cd9d906cd 100644 --- a/data/categories-strings/de.json/localize.json +++ b/data/categories-strings/de.json/localize.json @@ -397,6 +397,7 @@ "amenity-payment_terminal": "Bezahlterminal", "amenity-public_bath": "Öffentliches Bad", "amenity-shower": "Dusche", +"emergency-access_point": "4Rettungspunkt|Notfallpunkt|Notfall-Rettungspunkt|Notfall-Treffpunkt", "emergency-assembly_point": "Notfall-Sammelpunkt", "emergency-defibrillator": "4Defibrillator", "emergency-fire_hydrant": "4Hydrant", diff --git a/data/categories-strings/en.json/localize.json b/data/categories-strings/en.json/localize.json index c61d29dd7..00844914b 100644 --- a/data/categories-strings/en.json/localize.json +++ b/data/categories-strings/en.json/localize.json @@ -427,6 +427,7 @@ "amenity-payment_centre": "Payment Centre", "amenity-public_bath": "Public Bath", "amenity-shower": "Shower", +"emergency-access_point": "5Emergency Rescue Point|Emergency Location|Emergency Marker|Emergency Access Point", "emergency-assembly_point": "Emergency Assembly Point", "emergency-defibrillator": "4Defibrillator|AED", "emergency-fire_hydrant": "4Fire Hydrant|Fire Plug", diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv index 6f2f30e1a..d0dd1104e 100644 --- a/data/mapcss-mapping.csv +++ b/data/mapcss-mapping.csv @@ -169,7 +169,7 @@ highway|residential|bridge;[highway=residential][bridge?];;name;int_name;81; # railway|rail|service|bridge;[railway=rail][service?][service!=spur][bridge?];... railway|rail|bridge;[railway=rail][bridge?][dont=match];;name;int_name;82; deprecated:boundary|administrative|10:04.2024;[boundary=administrative][admin_level=10];x;name;int_name;83; -deprecated:boundary|administrative|6:04.2024;[boundary=administrative][admin_level=6];x;name;int_name;84; +emergency|access_point;[emergency=access_point];;name;;84; highway|secondary|bridge;[highway=secondary][bridge?];;name;int_name;85; highway|tertiary|bridge;[highway=tertiary][bridge?];;name;int_name;86; barrier|bollard;87; diff --git a/data/replaced_tags.txt b/data/replaced_tags.txt index a34d37455..e9f70d6e9 100644 --- a/data/replaced_tags.txt +++ b/data/replaced_tags.txt @@ -77,6 +77,8 @@ vending=water : vending=drinks vending=milk : vending=drinks vending=bread : vending=food +highway=emergency_access_point : emergency=access_point + building=entrance : entrance=yes ice_road=yes : highway=ice_road diff --git a/data/styles/default/dark/colors.mapcss b/data/styles/default/dark/colors.mapcss index 19750c545..d37b82652 100644 --- a/data/styles/default/dark/colors.mapcss +++ b/data/styles/default/dark/colors.mapcss @@ -242,6 +242,7 @@ @neutral_label: #51585E; @healthcare_label: #983E44; @public_transport_label: #2F6499; +@emergency_label: #247F52; /* 6.4 Road labels */ diff --git a/data/styles/default/dark/symbols/access_point-m.svg b/data/styles/default/dark/symbols/access_point-m.svg new file mode 100644 index 000000000..a81bd0f8a --- /dev/null +++ b/data/styles/default/dark/symbols/access_point-m.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/styles/default/dark/symbols/assembly_point-m.svg b/data/styles/default/dark/symbols/assembly_point-m.svg index da02933fc..69c0cebf5 100644 --- a/data/styles/default/dark/symbols/assembly_point-m.svg +++ b/data/styles/default/dark/symbols/assembly_point-m.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/data/styles/default/include/Icons.mapcss b/data/styles/default/include/Icons.mapcss index 81bd1d941..9a5000e43 100644 --- a/data/styles/default/include/Icons.mapcss +++ b/data/styles/default/include/Icons.mapcss @@ -927,6 +927,7 @@ node|z16-[man_made=observatory], node|z17-[amenity=fire_station], node|z18-[amenity=internet_cafe], node|z18-[emergency=defibrillator], +node|z18-[emergency=access_point], node|z18-[emergency=assembly_point], node|z18-[emergency=lifeguard], node|z18-[amenity=toilets], @@ -1525,6 +1526,9 @@ node|z19-[emergency=fire_hydrant], node|z18-[emergency=defibrillator], {icon-image: defibrillator-m.svg;font-size: 11;} +node|z18-[emergency=access_point], +{icon-image: access_point-m.svg;font-size: 11;} + node|z18-[emergency=assembly_point], {icon-image: assembly_point-m.svg;font-size: 11;} diff --git a/data/styles/default/include/Icons_Label_Colors.mapcss b/data/styles/default/include/Icons_Label_Colors.mapcss index e04430282..b8bd90c58 100644 --- a/data/styles/default/include/Icons_Label_Colors.mapcss +++ b/data/styles/default/include/Icons_Label_Colors.mapcss @@ -158,3 +158,6 @@ node[healthcare], node[amenity=bicycle_rental], node[amenity=taxi], {text-color: @public_transport_label;text-halo-radius: 0.1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;} + +node[emergency=access_point], +{text-color: @emergency_label;text-halo-radius: 0.1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;} diff --git a/data/styles/default/include/priorities_4_overlays.prio.txt b/data/styles/default/include/priorities_4_overlays.prio.txt index d7835ef6d..2eeb35530 100644 --- a/data/styles/default/include/priorities_4_overlays.prio.txt +++ b/data/styles/default/include/priorities_4_overlays.prio.txt @@ -2360,6 +2360,7 @@ amenity-bench # icon z18- (also has captio amenity-bench-backless # icon z18- (also has caption(optional) z19-) amenity-lounger # icon z18- (also has caption(optional) z19-) amenity-waste_disposal # icon z18- (also has caption(optional) z18-) +emergency-access_point # icon z18- (also has caption(optional) z18-) emergency-assembly_point # icon z18- (also has caption(optional) z18-) emergency-defibrillator # icon z18- (also has caption(optional) z18-) emergency-phone # icon z17- @@ -2391,6 +2392,7 @@ amenity-loading_dock # icon z18- (also has captio # amenity-vending_machine-sweets # caption(optional) z18- (also has icon z18-) # amenity-waste_basket # caption(optional) z19- (also has icon z18-) # amenity-waste_disposal # caption(optional) z18- (also has icon z18-) +# emergency-access_point # caption(optional) z18- (also has icon z18-) # emergency-assembly_point # caption(optional) z18- (also has icon z18-) # emergency-defibrillator # caption(optional) z18- (also has icon z18-) # emergency-fire_hydrant # caption(optional) z19- (also has icon z19-) diff --git a/data/styles/default/light/colors.mapcss b/data/styles/default/light/colors.mapcss index 51bfd0191..307014fbb 100644 --- a/data/styles/default/light/colors.mapcss +++ b/data/styles/default/light/colors.mapcss @@ -240,6 +240,7 @@ @neutral_label: #494F54; @healthcare_label: #A6454B; @public_transport_label: #234B73; +@emergency_label: #247F52; /* 6.4 Road labels */ diff --git a/data/styles/default/light/symbols/access_point-m.svg b/data/styles/default/light/symbols/access_point-m.svg new file mode 100644 index 000000000..e04adca21 --- /dev/null +++ b/data/styles/default/light/symbols/access_point-m.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/data/styles/default/light/symbols/assembly_point-m.svg b/data/styles/default/light/symbols/assembly_point-m.svg index c21a96e36..fe7bcab6f 100644 --- a/data/styles/default/light/symbols/assembly_point-m.svg +++ b/data/styles/default/light/symbols/assembly_point-m.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/data/styles/outdoors/include/priorities_4_overlays.prio.txt b/data/styles/outdoors/include/priorities_4_overlays.prio.txt index fdb704653..cf3f90442 100644 --- a/data/styles/outdoors/include/priorities_4_overlays.prio.txt +++ b/data/styles/outdoors/include/priorities_4_overlays.prio.txt @@ -2366,6 +2366,7 @@ amenity-bench # icon z18- (also has captio amenity-bench-backless # icon z18- (also has caption(optional) z19-) amenity-lounger # icon z18- (also has caption(optional) z19-) amenity-waste_disposal # icon z18- (also has caption(optional) z18-) +emergency-access_point # icon z18- (also has caption(optional) z18-) emergency-assembly_point # icon z18- (also has caption(optional) z18-) emergency-defibrillator # icon z18- (also has caption(optional) z18-) emergency-phone # icon z17- @@ -2397,6 +2398,7 @@ amenity-loading_dock # icon z18- (also has captio # amenity-vending_machine-sweets # caption(optional) z18- (also has icon z18-) # amenity-waste_basket # caption(optional) z19- (also has icon z18-) # amenity-waste_disposal # caption(optional) z18- (also has icon z18-) +# emergency-access_point # caption(optional) z18- (also has icon z18-) # emergency-assembly_point # caption(optional) z18- (also has icon z18-) # emergency-defibrillator # caption(optional) z18- (also has icon z18-) # emergency-fire_hydrant # caption(optional) z19- (also has icon z19-) diff --git a/data/styles/vehicle/dark/colors.mapcss b/data/styles/vehicle/dark/colors.mapcss index ce7ad377b..9f22d0d35 100644 --- a/data/styles/vehicle/dark/colors.mapcss +++ b/data/styles/vehicle/dark/colors.mapcss @@ -180,6 +180,7 @@ @neutral_label: #51585E; @healthcare_label: #983E44; @public_transport_label: #2F6499; +@emergency_label: #247F52; /* 6.4 Road labels */ diff --git a/data/styles/vehicle/light/colors.mapcss b/data/styles/vehicle/light/colors.mapcss index b7e2a9a93..b950d858e 100644 --- a/data/styles/vehicle/light/colors.mapcss +++ b/data/styles/vehicle/light/colors.mapcss @@ -151,6 +151,7 @@ @neutral_label: #494F54; @healthcare_label: #A6454B; @public_transport_label: #234B73; +@emergency_label: #247F52; /* ROADS LABELS */ @shield_text: #000000; diff --git a/generator/feature_builder.cpp b/generator/feature_builder.cpp index 8e4a8713c..54705edb7 100644 --- a/generator/feature_builder.cpp +++ b/generator/feature_builder.cpp @@ -225,6 +225,11 @@ bool FeatureBuilder::PreSerialize() }); m_params.name = std::move(nameWithRef); } + else if (ftypes::IsEmergencyAccessPointChecker::Instance()(types)) + { + m_params.name.Clear(); + m_params.name.AddString(StringUtf8Multilang::kDefaultCode, m_params.ref); + } m_params.ref.clear(); } diff --git a/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings index 47c0c8f7c..afc7c48ae 100644 --- a/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/de.lproj/LocalizableTypes.strings @@ -359,6 +359,7 @@ "type.cuisine.vegetarian" = "Vegetarisch"; "type.cuisine.vietnamese" = "Vietnamesisch"; "type.emergency" = "Notfall"; +"type.emergency.access_point" = "Rettungspunkt"; "type.emergency.assembly_point" = "Notfall-Sammelpunkt"; "type.emergency.defibrillator" = "Defibrillator"; "type.emergency.fire_hydrant" = "Hydrant"; diff --git a/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings index 7bc6af6d6..d9800d4e8 100644 --- a/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/en-GB.lproj/LocalizableTypes.strings @@ -367,6 +367,7 @@ "type.cuisine.vegetarian" = "Vegetarian"; "type.cuisine.vietnamese" = "Vietnamese"; "type.emergency" = "Emergency"; +"type.emergency.access_point" = "Emergency Rescue Point"; "type.emergency.assembly_point" = "Emergency Assembly Point"; "type.emergency.defibrillator" = "Defibrillator"; "type.emergency.fire_hydrant" = "Fire Hydrant"; diff --git a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings index 8f7464d80..086eec67e 100644 --- a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings +++ b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings @@ -386,6 +386,7 @@ "type.cuisine.vegetarian" = "Vegetarian"; "type.cuisine.vietnamese" = "Vietnamese"; "type.emergency" = "Emergency"; +"type.emergency.access_point" = "Emergency Rescue Point"; "type.emergency.assembly_point" = "Emergency Assembly Point"; "type.emergency.defibrillator" = "Defibrillator"; "type.emergency.fire_hydrant" = "Fire Hydrant"; diff --git a/libs/indexer/ftypes_matcher.cpp b/libs/indexer/ftypes_matcher.cpp index ef32d51e6..ccb754e48 100644 --- a/libs/indexer/ftypes_matcher.cpp +++ b/libs/indexer/ftypes_matcher.cpp @@ -854,6 +854,12 @@ IsPlatformChecker::IsPlatformChecker() m_types.push_back(c.GetTypeByPath({"public_transport", "platform"})); } +IsEmergencyAccessPointChecker::IsEmergencyAccessPointChecker() +{ + Classificator const & c = classif(); + m_types.push_back(c.GetTypeByPath({"emergency", "access_point"})); +} + IsAddressInterpolChecker::IsAddressInterpolChecker() : BaseChecker(1 /* level */) { Classificator const & c = classif(); diff --git a/libs/indexer/ftypes_matcher.hpp b/libs/indexer/ftypes_matcher.hpp index 94bd2eafe..ed7f5d575 100644 --- a/libs/indexer/ftypes_matcher.hpp +++ b/libs/indexer/ftypes_matcher.hpp @@ -629,6 +629,14 @@ public: DECLARE_CHECKER_INSTANCE(IsPlatformChecker); }; +class IsEmergencyAccessPointChecker : public BaseChecker +{ + IsEmergencyAccessPointChecker(); + +public: + DECLARE_CHECKER_INSTANCE(IsEmergencyAccessPointChecker); +}; + class IsAddressInterpolChecker : public BaseChecker { IsAddressInterpolChecker();