From 3aabde338a1e277acf14b3f9e64dd4f61289d7df Mon Sep 17 00:00:00 2001
From: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
Date: Mon, 14 Jul 2025 18:30:25 +0200
Subject: [PATCH] [styles] Add bicycle search result icons & bookmark icons
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
---
.../organicmaps/sdk/bookmarks/data/Icon.java | 5 ++++-
.../symbols/bookmark-bicycle_parking-m.svg | 12 ++++++++++++
.../bookmark-bicycle_parking_covered-m.svg | 13 +++++++++++++
.../dark/symbols/bookmark-bicycle_rental-m.svg | 15 +++++++++++++++
.../search-result-bicycle_parking-covered.svg | 16 ++++++++++++++++
.../symbols/search-result-bicycle_parking.svg | 15 +++++++++++++++
.../symbols/search-result-bicycle_rental.svg | 18 ++++++++++++++++++
.../symbols/bookmark-bicycle_parking-m.svg | 12 ++++++++++++
.../bookmark-bicycle_parking_covered-m.svg | 13 +++++++++++++
.../symbols/bookmark-bicycle_rental-m.svg | 15 +++++++++++++++
.../search-result-bicycle_parking-covered.svg | 16 ++++++++++++++++
.../symbols/search-result-bicycle_parking.svg | 15 +++++++++++++++
.../symbols/search-result-bicycle_rental.svg | 18 ++++++++++++++++++
.../Contents.json | 12 ++++++++++++
.../ic_bm_bicycleparking.svg | 4 ++++
.../Contents.json | 12 ++++++++++++
.../ic_bm_bicycleparkingcovered.svg | 5 +++++
.../ic_bm_bicyclerental.imageset/Contents.json | 12 ++++++++++++
.../ic_bm_bicyclerental.svg | 7 +++++++
kml/types.hpp | 6 ++++++
map/bookmark.cpp | 3 +++
map/bookmark_helpers.cpp | 5 ++++-
map/search_mark.cpp | 9 +++++++++
23 files changed, 256 insertions(+), 2 deletions(-)
create mode 100644 data/styles/default/dark/symbols/bookmark-bicycle_parking-m.svg
create mode 100644 data/styles/default/dark/symbols/bookmark-bicycle_parking_covered-m.svg
create mode 100644 data/styles/default/dark/symbols/bookmark-bicycle_rental-m.svg
create mode 100644 data/styles/default/dark/symbols/search-result-bicycle_parking-covered.svg
create mode 100644 data/styles/default/dark/symbols/search-result-bicycle_parking.svg
create mode 100644 data/styles/default/dark/symbols/search-result-bicycle_rental.svg
create mode 100644 data/styles/default/light/symbols/bookmark-bicycle_parking-m.svg
create mode 100644 data/styles/default/light/symbols/bookmark-bicycle_parking_covered-m.svg
create mode 100644 data/styles/default/light/symbols/bookmark-bicycle_rental-m.svg
create mode 100644 data/styles/default/light/symbols/search-result-bicycle_parking-covered.svg
create mode 100644 data/styles/default/light/symbols/search-result-bicycle_parking.svg
create mode 100644 data/styles/default/light/symbols/search-result-bicycle_rental.svg
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/Contents.json
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/ic_bm_bicycleparking.svg
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/Contents.json
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/ic_bm_bicycleparkingcovered.svg
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/Contents.json
create mode 100644 iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/ic_bm_bicyclerental.svg
diff --git a/android/app/src/main/java/app/organicmaps/sdk/bookmarks/data/Icon.java b/android/app/src/main/java/app/organicmaps/sdk/bookmarks/data/Icon.java
index c6d9c73d2..9127a723d 100644
--- a/android/app/src/main/java/app/organicmaps/sdk/bookmarks/data/Icon.java
+++ b/android/app/src/main/java/app/organicmaps/sdk/bookmarks/data/Icon.java
@@ -92,7 +92,10 @@ public class Icon implements Parcelable
R.drawable.ic_bookmark_none, // stadium
R.drawable.ic_bookmark_none, // theatre
R.drawable.ic_bookmark_none, // information
- R.drawable.ic_bookmark_none // ChargingStation
+ R.drawable.ic_bookmark_none, // ChargingStation
+ R.drawable.ic_bookmark_none, // BicycleParking
+ R.drawable.ic_bookmark_none, // BicycleParkingCovered
+ R.drawable.ic_bookmark_none // BicycleRental
};
@PredefinedColor
diff --git a/data/styles/default/dark/symbols/bookmark-bicycle_parking-m.svg b/data/styles/default/dark/symbols/bookmark-bicycle_parking-m.svg
new file mode 100644
index 000000000..92867fe82
--- /dev/null
+++ b/data/styles/default/dark/symbols/bookmark-bicycle_parking-m.svg
@@ -0,0 +1,12 @@
+
+
diff --git a/data/styles/default/dark/symbols/bookmark-bicycle_parking_covered-m.svg b/data/styles/default/dark/symbols/bookmark-bicycle_parking_covered-m.svg
new file mode 100644
index 000000000..cc117e50d
--- /dev/null
+++ b/data/styles/default/dark/symbols/bookmark-bicycle_parking_covered-m.svg
@@ -0,0 +1,13 @@
+
+
diff --git a/data/styles/default/dark/symbols/bookmark-bicycle_rental-m.svg b/data/styles/default/dark/symbols/bookmark-bicycle_rental-m.svg
new file mode 100644
index 000000000..5ef6fca04
--- /dev/null
+++ b/data/styles/default/dark/symbols/bookmark-bicycle_rental-m.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/dark/symbols/search-result-bicycle_parking-covered.svg b/data/styles/default/dark/symbols/search-result-bicycle_parking-covered.svg
new file mode 100644
index 000000000..f8c7ad2ed
--- /dev/null
+++ b/data/styles/default/dark/symbols/search-result-bicycle_parking-covered.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/data/styles/default/dark/symbols/search-result-bicycle_parking.svg b/data/styles/default/dark/symbols/search-result-bicycle_parking.svg
new file mode 100644
index 000000000..3198e27ce
--- /dev/null
+++ b/data/styles/default/dark/symbols/search-result-bicycle_parking.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/dark/symbols/search-result-bicycle_rental.svg b/data/styles/default/dark/symbols/search-result-bicycle_rental.svg
new file mode 100644
index 000000000..e03477152
--- /dev/null
+++ b/data/styles/default/dark/symbols/search-result-bicycle_rental.svg
@@ -0,0 +1,18 @@
+
+
diff --git a/data/styles/default/light/symbols/bookmark-bicycle_parking-m.svg b/data/styles/default/light/symbols/bookmark-bicycle_parking-m.svg
new file mode 100644
index 000000000..94d2994c7
--- /dev/null
+++ b/data/styles/default/light/symbols/bookmark-bicycle_parking-m.svg
@@ -0,0 +1,12 @@
+
+
diff --git a/data/styles/default/light/symbols/bookmark-bicycle_parking_covered-m.svg b/data/styles/default/light/symbols/bookmark-bicycle_parking_covered-m.svg
new file mode 100644
index 000000000..888da2d88
--- /dev/null
+++ b/data/styles/default/light/symbols/bookmark-bicycle_parking_covered-m.svg
@@ -0,0 +1,13 @@
+
+
diff --git a/data/styles/default/light/symbols/bookmark-bicycle_rental-m.svg b/data/styles/default/light/symbols/bookmark-bicycle_rental-m.svg
new file mode 100644
index 000000000..a5cdbbf73
--- /dev/null
+++ b/data/styles/default/light/symbols/bookmark-bicycle_rental-m.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/light/symbols/search-result-bicycle_parking-covered.svg b/data/styles/default/light/symbols/search-result-bicycle_parking-covered.svg
new file mode 100644
index 000000000..f8c7ad2ed
--- /dev/null
+++ b/data/styles/default/light/symbols/search-result-bicycle_parking-covered.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/data/styles/default/light/symbols/search-result-bicycle_parking.svg b/data/styles/default/light/symbols/search-result-bicycle_parking.svg
new file mode 100644
index 000000000..3198e27ce
--- /dev/null
+++ b/data/styles/default/light/symbols/search-result-bicycle_parking.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/data/styles/default/light/symbols/search-result-bicycle_rental.svg b/data/styles/default/light/symbols/search-result-bicycle_rental.svg
new file mode 100644
index 000000000..e03477152
--- /dev/null
+++ b/data/styles/default/light/symbols/search-result-bicycle_rental.svg
@@ -0,0 +1,18 @@
+
+
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/Contents.json b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/Contents.json
new file mode 100644
index 000000000..5be0ed61d
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "ic_bm_bicycleparking.svg"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/ic_bm_bicycleparking.svg b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/ic_bm_bicycleparking.svg
new file mode 100644
index 000000000..a9264d81c
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparking.imageset/ic_bm_bicycleparking.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/Contents.json b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/Contents.json
new file mode 100644
index 000000000..23c56f5ae
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "ic_bm_bicycleparkingcovered.svg"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/ic_bm_bicycleparkingcovered.svg b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/ic_bm_bicycleparkingcovered.svg
new file mode 100644
index 000000000..faf83991d
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicycleparkingcovered.imageset/ic_bm_bicycleparkingcovered.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/Contents.json b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/Contents.json
new file mode 100644
index 000000000..26b6b2cc4
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "filename" : "ic_bm_bicyclerental.svg"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/ic_bm_bicyclerental.svg b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/ic_bm_bicyclerental.svg
new file mode 100644
index 000000000..88675f2a3
--- /dev/null
+++ b/iphone/Maps/Images.xcassets/Bookmarks/ic_bm_bicyclerental.imageset/ic_bm_bicyclerental.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/kml/types.hpp b/kml/types.hpp
index dba079ac4..64957bc62 100644
--- a/kml/types.hpp
+++ b/kml/types.hpp
@@ -185,6 +185,9 @@ enum class BookmarkIcon : uint16_t
Theatre,
Information,
ChargingStation,
+ BicycleParking,
+ BicycleParkingCovered,
+ BicycleRental,
Count
};
@@ -228,6 +231,9 @@ inline std::string ToString(BookmarkIcon icon)
case Theatre: return "Theatre";
case Information: return "Information";
case ChargingStation: return "ChargingStation";
+ case BicycleParking: return "BicycleParking";
+ case BicycleParkingCovered: return "BicycleParkingCovered";
+ case BicycleRental: return "BicycleRental";
case Count: return {};
}
UNREACHABLE();
diff --git a/map/bookmark.cpp b/map/bookmark.cpp
index 5b03e3cec..9f379dfcb 100644
--- a/map/bookmark.cpp
+++ b/map/bookmark.cpp
@@ -48,6 +48,9 @@ std::string GetBookmarkIconType(kml::BookmarkIcon const & icon)
case kml::BookmarkIcon::Theatre: return "theatre";
case kml::BookmarkIcon::Information: return "information";
case kml::BookmarkIcon::ChargingStation: return "charging_station";
+ case kml::BookmarkIcon::BicycleParking: return "bicycle_parking";
+ case kml::BookmarkIcon::BicycleParkingCovered: return "bicycle_parking_covered";
+ case kml::BookmarkIcon::BicycleRental: return "bicycle_rental";
case kml::BookmarkIcon::Count:
ASSERT(false, ("Invalid bookmark icon type"));
return {};
diff --git a/map/bookmark_helpers.cpp b/map/bookmark_helpers.cpp
index 4f126c842..8d1e67203 100644
--- a/map/bookmark_helpers.cpp
+++ b/map/bookmark_helpers.cpp
@@ -134,7 +134,10 @@ std::map const kFeatureTypeToBookmarkMatchInfo =
{"leisure-nature_reserve", {kml::BookmarkIcon::Park, BookmarkBaseType::Park}},
{"leisure-park", {kml::BookmarkIcon::Park, BookmarkBaseType::Park}},
- {"amenity-bicycle_parking", {kml::BookmarkIcon::Parking, BookmarkBaseType::Parking}},
+ {"amenity-bicycle_parking", {kml::BookmarkIcon::BicycleParking, BookmarkBaseType::Parking}},
+ {"amenity-bicycle_parking-covered", {kml::BookmarkIcon::BicycleParkingCovered, BookmarkBaseType::Parking}},
+ {"amenity-bicycle_rental", {kml::BookmarkIcon::BicycleRental, BookmarkBaseType::Parking}},
+
{"amenity-motorcycle_parking", {kml::BookmarkIcon::Parking, BookmarkBaseType::Parking}},
{"amenity-parking", {kml::BookmarkIcon::Parking, BookmarkBaseType::Parking}},
{"highway-services", {kml::BookmarkIcon::Parking, BookmarkBaseType::Parking}},
diff --git a/map/search_mark.cpp b/map/search_mark.cpp
index 2454eefb4..e0f3cf3b0 100644
--- a/map/search_mark.cpp
+++ b/map/search_mark.cpp
@@ -72,6 +72,9 @@ enum SearchMarkPoint::SearchMarkType : uint8_t
Pharmacy,
DrinkingWater,
DrinkingWaterNo,
+ BicycleParking,
+ BicycleParkingCovered,
+ BicycleRental,
NotFound, // Service value used in developer tools.
Count
@@ -142,6 +145,9 @@ std::array const kSymbols = {
"search-result-pharmacy", // Pharmacy.
"search-result-drinking-water", // DrinkingWater.
"search-result-drinking-water-no", // DrinkingWaterNo.
+ "search-result-bicycle_parking", // BicycleParking.
+ "search-result-bicycle_parking-covered",// BicycleParkingCovered.
+ "search-result-bicycle_rental", // BicycleRental.
"non-found-search-result", // NotFound.
@@ -284,6 +290,9 @@ private:
{{"man_made", "water_tap", "drinking_water_no"}, SearchMarkType::DrinkingWaterNo},
{{"man_made", "water_well", "drinking_water_no"}, SearchMarkType::DrinkingWaterNo},
{{"natural", "spring", "drinking_water_no"}, SearchMarkType::DrinkingWaterNo},
+ {{"amenity", "bicycle_parking"}, SearchMarkType::BicycleParking},
+ {{"amenity", "bicycle_parking", "covered"}, SearchMarkType::BicycleParkingCovered},
+ {{"amenity", "bicycle_rental"}, SearchMarkType::BicycleRental},
};
m_searchMarkTypes.reserve(std::size(table));