diff --git a/android/sdk/src/main/res/values/types_strings.xml b/android/sdk/src/main/res/values/types_strings.xml
index c3cc2955b..727ffac66 100644
--- a/android/sdk/src/main/res/values/types_strings.xml
+++ b/android/sdk/src/main/res/values/types_strings.xml
@@ -1286,6 +1286,7 @@
Watch Store
Wholesale Store
Lighting Shop
+ Vacant Business
Sport
Various Sports
Bowling
diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv
index ed401933e..53d200126 100644
--- a/data/mapcss-mapping.csv
+++ b/data/mapcss-mapping.csv
@@ -1362,7 +1362,7 @@ historic|memorial|plaque;[historic=memorial][memorial=plaque],[historic=memorial
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;
-deprecated:tourism|attraction|specified:03.2024;[tourism=attraction][attraction=specified];x;name;int_name;1237;tourism|attraction
+disusedbusiness;[disused:shop?],[disused:amenity=restaurant],[disused:amenity=fast_food],[disused:amenity=cafe],[disused:amenity=pub],[disused:amenity=bar];;;;1237;
cuisine|regional;1238;
cuisine|pizza;1239;
cuisine|burger;1240;
diff --git a/data/styles/default/dark/symbols/disusedbusiness-m.svg b/data/styles/default/dark/symbols/disusedbusiness-m.svg
new file mode 100644
index 000000000..ce286b97d
--- /dev/null
+++ b/data/styles/default/dark/symbols/disusedbusiness-m.svg
@@ -0,0 +1,4 @@
+
diff --git a/data/styles/default/include/Icons.mapcss b/data/styles/default/include/Icons.mapcss
index ce434bda6..47700134d 100644
--- a/data/styles/default/include/Icons.mapcss
+++ b/data/styles/default/include/Icons.mapcss
@@ -51,6 +51,11 @@ node|z16-[shop],
node|z18-[shop],
{icon-image: shop-m.svg;}
+node|z20-[disused:shop],
+{icon-min-distance: 10;}
+node|z20-[disused:shop],
+{icon-image: disusedbusiness-m.svg;}
+
/* 2. NATURAL */
node|z13-[natural=volcano],
diff --git a/data/styles/default/include/priorities_4_overlays.prio.txt b/data/styles/default/include/priorities_4_overlays.prio.txt
index 741a6e82d..d1768f904 100644
--- a/data/styles/default/include/priorities_4_overlays.prio.txt
+++ b/data/styles/default/include/priorities_4_overlays.prio.txt
@@ -1263,6 +1263,7 @@ amenity-motorcycle_parking # icon z17- (also has captio
amenity-parking-permissive # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking_entrance # icon z17- (also has caption(optional) z19-)
amenity-parking_entrance-permissive # icon z17- (also has caption(optional) z19-)
+disusedbusiness # icon z20-
emergency-emergency_ward_entrance # icon z16- (also has caption(optional) z18-)
=== 250
diff --git a/data/styles/default/light/symbols/disusedbusiness-m.svg b/data/styles/default/light/symbols/disusedbusiness-m.svg
new file mode 100644
index 000000000..4ab3e2149
--- /dev/null
+++ b/data/styles/default/light/symbols/disusedbusiness-m.svg
@@ -0,0 +1,4 @@
+
diff --git a/data/styles/outdoors/include/priorities_4_overlays.prio.txt b/data/styles/outdoors/include/priorities_4_overlays.prio.txt
index bc32c6fff..19aab7cb6 100644
--- a/data/styles/outdoors/include/priorities_4_overlays.prio.txt
+++ b/data/styles/outdoors/include/priorities_4_overlays.prio.txt
@@ -1264,6 +1264,7 @@ amenity-motorcycle_parking # icon z17- (also has captio
amenity-parking-permissive # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking_entrance # icon z17- (also has caption(optional) z19-)
amenity-parking_entrance-permissive # icon z17- (also has caption(optional) z19-)
+disusedbusiness # icon z20-
emergency-emergency_ward_entrance # icon z16- (also has caption(optional) z18-)
=== 250
diff --git a/generator/osm2type.cpp b/generator/osm2type.cpp
index c55d358b9..e8052814f 100644
--- a/generator/osm2type.cpp
+++ b/generator/osm2type.cpp
@@ -267,6 +267,8 @@ public:
BicycleOnedir,
Ferry,
ShuttleTrain,
+ DisusedBusiness,
+ Building,
Count
};
@@ -306,6 +308,8 @@ public:
{BicycleOnedir, {"hwtag", "onedir_bicycle"}},
{Ferry, {"route", "ferry"}},
{ShuttleTrain, {"route", "shuttle_train"}},
+ {DisusedBusiness, {"disusedbusiness"}},
+ {Building, {"building"}},
};
m_types.resize(static_cast(Count));
@@ -1074,6 +1078,31 @@ void PostprocessElement(OsmElement * p, FeatureBuilderParams & params)
}
}
+ // Clear POI attributes for disused businesses (e.g. disused:shop)
+ for (uint32_t t : params.m_types)
+ {
+ if (t == types.Get(CachedTypes::DisusedBusiness))
+ {
+ // Avoid removing attributes in cases where e.g. shop AND disused:shop are present
+ bool hasPoiType = false;
+ for (uint32_t type : params.m_types)
+ {
+ ftype::TruncValue(type, 1);
+ if (type != types.Get(CachedTypes::WheelchairAny) && type != types.Get(CachedTypes::InternetAny)
+ && type != types.Get(CachedTypes::DisusedBusiness) && type != types.Get(CachedTypes::Building))
+ {
+ hasPoiType = true;
+ break;
+ }
+ }
+
+ if (!hasPoiType)
+ params.ClearPOIAttribs();
+
+ break;
+ }
+ }
+
// Process yes/no tags.
TagProcessor(p).ApplyRules({
{"wheelchair", "designated", [&AddParam] { AddParam(CachedTypes::WheelchairYes); }},
diff --git a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings
index 39622a9f2..a27340dda 100644
--- a/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings
+++ b/iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings
@@ -1382,6 +1382,7 @@
"type.shop.watches" = "Watch Store";
"type.shop.wholesale" = "Wholesale Store";
"type.shop.lighting" = "Lighting Shop";
+"type.disusedbusiness" = "Vacant Business";
"type.sport" = "Sport";
"type.sport.multi" = "Various Sports";
"type.sport.9pin" = "Bowling";