Compare commits

..

2 Commits

Author SHA1 Message Date
Yannik Bloscheck
692ff8a69f [styles] Keep using shorter type for simple charging stations
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-08 19:27:58 +01:00
Yannik Bloscheck
919440a0d6 [styles] Optimize displaying of charging stations, handle implicit motorcars tagging and add motorcycles
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-08 19:27:58 +01:00
45 changed files with 294 additions and 99 deletions

View File

@@ -53,7 +53,7 @@ public class MenuBottomSheetFragment extends BottomSheetDialogFragment
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState)
{
return new BottomSheetDialog(requireContext(), R.style.MwmTheme_BottomSheetDialog) {
return new BottomSheetDialog(requireContext(), getTheme()) {
@Override
public void onAttachedToWindow()
{

View File

@@ -41,5 +41,5 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="bottom|start"
android:background="?colorSurfaceContainerLow"/>
android:background="?cardBackground"/>
</FrameLayout>

View File

@@ -8,6 +8,7 @@
android:paddingStart="@dimen/margin_base"
android:paddingEnd="@dimen/margin_base"
android:gravity="center_vertical"
android:background="?clickableBackground"
android:orientation="horizontal">
<com.google.android.material.imageview.ShapeableImageView

View File

@@ -40,5 +40,5 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="bottom|center"
android:background="?colorSurfaceContainerLow"/>
android:background="?cardBackground"/>
</FrameLayout>

View File

@@ -4,7 +4,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:background="?cardBackground"
android:orientation="vertical">
<include
android:id="@+id/pp__preview"

View File

@@ -15,7 +15,6 @@
<color name="bg_cards">#FF3C4044</color>
<color name="bg_panel">@color/bg_window</color>
<color name="bg_primary_dark">#FF588157</color>
<color name="bg_app">#10140F</color>
<color name="bg_menu">#CC2D3237</color>

View File

@@ -290,13 +290,13 @@
</style>
<style name="MwmWidget.BottomSheetDialog" parent="Widget.Material3.BottomSheet.Modal">
<item name="backgroundTint">?colorSurfaceContainerLow</item>
<item name="backgroundTint">?cardBackground</item>
<item name="elevationOverlayEnabled">false</item>
<item name="shapeAppearance">@style/ShapeAppearance.Material3.LargeComponent</item>
</style>
<style name="MwmWidget.BottomSheet" parent="MwmWidget.BottomSheetDialog">
<item name="android:background">?colorSurfaceContainerLow</item>
<item name="android:background">?cardBackground</item>
<item name="behavior_hideable">false</item>
</style>

View File

@@ -43,9 +43,10 @@
<string name="type.leisure.adult_gaming_centre">Spielhalle für Erwachsene</string>
<string name="type.leisure.amusement_arcade">Spielhalle für Unterhaltungsspiele</string>
<string name="type.amenity.charging_station">Ladestation</string>
<string name="type.amenity.charging_station.bicycle">Fahrrad-Ladestation</string>
<string name="type.amenity.charging_station.motorcar">Kfz-Ladestation</string>
<string name="type.amenity.charging_station.motorcar.small">Kfz-Ladestation</string>
<string name="type.amenity.charging_station.bicycle">Fahrräder</string>
<string name="type.amenity.charging_station.motorcycle">Motorräder</string>
<string name="type.amenity.charging_station.motorcar">Autos</string>
<string name="type.amenity.charging_station.small">Begrenzte Kapazität</string>
<string name="type.amenity.childcare">Kindertagesstätte</string>
<string name="type.amenity.cinema">Kino</string>
<string name="type.leisure.bowling_alley">Bowlingbahn</string>

View File

@@ -53,9 +53,10 @@
<string name="type.leisure.adult_gaming_centre">Adult Gaming Centre</string>
<string name="type.leisure.amusement_arcade">Arcade</string>
<string name="type.amenity.charging_station">Charging Station</string>
<string name="type.amenity.charging_station.bicycle">Bicycle Charging Station</string>
<string name="type.amenity.charging_station.motorcar">Car Charging Station</string>
<string name="type.amenity.charging_station.motorcar.small">Car Charging Point</string>
<string name="type.amenity.charging_station.bicycle">Bicycles</string>
<string name="type.amenity.charging_station.motorcycle">Motorcycles</string>
<string name="type.amenity.charging_station.motorcar">Cars</string>
<string name="type.amenity.charging_station.small">Limited Capacity</string>
<string name="type.amenity.childcare">Nursery</string>
<string name="type.amenity.cinema">Cinema</string>
<string name="type.amenity.studio">Media Studio</string>

View File

@@ -331,7 +331,9 @@
"amenity-car_wash": "4Autowaschanlage|Autowäsche",
"amenity-veterinary": "4Tierarzt|4Tierärztin|4Tierarztpraxis|4Tierpraxis|4Tierdoktor|5Hundearzt|5Katzenarzt|4Haustiere|U+2695",
"@charging_station": "4Ladestation|aufladen",
"amenity-charging_station-bicycle|@charging_station": "Fahrrad aufladen",
"amenity-charging_station-bicycle|@charging_station": "5Fahrradladestation|Fahrrad aufladen|E-Bike aufladen|Fahrrad laden|E-Bike laden",
"amenity-charging_station-motorcycle|@charging_station": "6Motorradladestation|Motorrad aufladen|Motorrad laden",
"amenity-charging_station-motorcar|@charging_station": "4Autoladestation|5Autoladegerät|Auto aufladen|Auto laden",
"amenity-childcare": "Kindertagesstätte|Kindergarten|Kinderbetreuung",
"amenity-bicycle_parking": "6Fahrradständer",
"amenity-waste_basket": "6Abfalleimer|4Mülleimer|4Restmüll|3Müll|4Müllkorb|U+1F6AE|U+1F5D1",
@@ -516,7 +518,6 @@
"attraction-amusement_ride|attraction-carousel|attraction-roller_coaster|attraction-maze|attraction-historic|attraction-big_wheel|attraction-bumper_car|@category_children": "4Attraktion|4Labyrinth",
"building-guardhouse": "4Wache",
"shop-lighting|@shop": "Leuchtmittel|Lampen|Leuchte",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Autoladestation|5Autoladegerät|4Ladestation|4Ladegerät|U+1F50C|U+1FAAB|U+1F50B",
"amenity-mobile_money_agent": "6Mobile Money Vertretung|6Mobile Money|6Mobiles Geld",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "4Teleskop",
"amenity-sailing_school": "5Segelschule|5Bootsschule|Bootsfahrschule",

View File

@@ -353,10 +353,11 @@
"man_made-observatory": "4Observatory",
"amenity-veterinary": "4Veterinary Doctor|3Veterinary|vet|veterinarian",
"amenity-animal_shelter": "6Animal Shelter",
"@charging_station": "4Charging Station|charging",
"@charging_station": "4Charging Station|charging|charger",
"amenity-charging_station|@charging_station": "",
"amenity-charging_station-bicycle|@charging_station": "4Bicycle Charging|4Bike Charging",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Motorcar Charging|3Car Charging|Charger",
"amenity-charging_station-bicycle|@charging_station": "4Bicycle Charging Station|Bicycle Charging|Bike Charging",
"amenity-charging_station-motorcycle|@charging_station": "5Motorcycle Charging Station|Motorcycle Charging|Motorbike Charging",
"amenity-charging_station-motorcar|@charging_station": "3Car Charging Station|Motorcar Charging|Car Charging",
"amenity-childcare": "Nursery|4Child Care|childcare",
"amenity-bicycle_parking": "4Bicycle Parking|4Bike Parking",
"amenity-waste_basket": "4Trash Bin|4litter bin|5waste basket|bin",

View File

@@ -518,7 +518,7 @@
"amenity-toilets|toilets-yes|@category_toilet": "wc",
"leisure-sports_centre-sport-swimming": "4Centro de natación",
"amenity-police|@category_police": "Estación de policía|policía",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Cargador de autos|cargador de coches|cargador de carros|4Estación de carga|3Estación de carga|Cargador",
"amenity-charging_station-motorcar|@charging_station": "Cargador de autos|cargador de coches|cargador de carros|4Estación de carga|3Estación de carga|Cargador",
"amenity-sailing_school": "Escuela de vela|Escuela de navegación",
"amenity-flight_school": "Escuela de aviación|Escuela de aeronáutica|Escuela de pilotos|aeronáutica|vuelo|aviación",
"amenity-prep_school": "Propedéutico|Tutoría",

View File

@@ -486,7 +486,7 @@
"amenity-love_hotel": "Hôtel de passe|Hôtel de sexe|Hôtel pour adultes",
"healthcare-sample_collection": "Prélèvement d'échantillons",
"recycling-cardboard|@category_recycling": "5Recyclage de carton|Déchets de carton|Carton",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Chargeur automobile|Chargeur de voiture|Chargeur",
"amenity-charging_station-motorcar|@charging_station": "Chargeur automobile|Chargeur de voiture|Chargeur",
"shop-lighting|@shop": "4Lumières|Luminaires|4Lampes",
"office-security": "Bureau de sécurité",
"building-guardhouse": "Garde|poste de sécurité|poste de gardiennage",

View File

@@ -320,7 +320,7 @@
"amenity-veterinary": "4Veterinārārsts|vetārsts|vetklīnika|veterinārā klīnika",
"@charging_station": "4Uzlādes stacija|uzlāde",
"amenity-charging_station-bicycle|@charging_station": "4Velosipēdu uzlāde|Riteņu uzlāde|Ričuku uzlāde|Divriteņu uzlāde",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Automobiļu uzlāde|mašīnu uzlāde",
"amenity-charging_station-motorcar|@charging_station": "Automobiļu uzlāde|mašīnu uzlāde",
"amenity-childcare": "Bērnistaba",
"amenity-bicycle_parking": "4Velonovietne",
"amenity-waste_basket": "Atkritumu tvertne|4miskaste",

View File

@@ -330,7 +330,7 @@
"amenity-animal_shelter": "Приют для животных",
"@charging_station": "4Зарядная станция|зарядка|электрозарядка|зарядить",
"amenity-charging_station-bicycle|@charging_station": "4Велозарядка|Зарядка для велосипедов",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Автозарядка",
"amenity-charging_station-motorcar|@charging_station": "4Автозарядка",
"amenity-childcare": "Детская комната|3ясли",
"amenity-bicycle_parking": "4Велопарковка|велостоянка",
"amenity-waste_basket": "3Урна|4Мусорная корзина",

View File

@@ -331,7 +331,7 @@
"amenity-veterinary": "4Veteriner",
"@charging_station": "Şarj İstasyonu|şarj etme",
"amenity-charging_station-bicycle|@charging_station": "4Bisiklet Şarjı",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Otomobil Şarj Cihazı|4Araba Şarj Cihazı|4Araç Şarj Cihazı|3Trugo|4TOGG Şarj",
"amenity-charging_station-motorcar|@charging_station": "4Otomobil Şarj Cihazı|4Araba Şarj Cihazı|4Araç Şarj Cihazı|3Trugo|4TOGG Şarj",
"amenity-childcare": "Çocuk Yuvası|Kreş",
"amenity-bicycle_parking": "4Bisiklet park etme|bisiklet park",
"amenity-waste_basket": "Çöp Kutusu",

View File

@@ -302,7 +302,7 @@ railway|crossing;197;
boundary|national_park;198;
deprecated:natural|wood|deciduous:01.2020;[natural=wood][wood=deciduous],[natural=wood][leaf_type=deciduous],[natural=wood][leaf_cycle=deciduous];x;name;int_name;199;landuse|forest|deciduous
waterway|dam;200;
amenity|charging_station|motorcar|small;[amenity=charging_station][motorcar?][!capacity],[amenity=charging_station][motorcar?][capacity=1],[amenity=charging_station][motorcar?][capacity=2];;name;int_name;201;
amenity|charging_station|small;[amenity=charging_station][motorcar?][!capacity],[amenity=charging_station][motorcar?][capacity=1],[amenity=charging_station][motorcar?][capacity=2],[amenity=charging_station][!capacity],[amenity=charging_station][capacity=1],[amenity=charging_station][capacity=2],;;name;int_name;201;
leisure|golf_course;202;
highway|service|bridge;[highway=service][bridge?];;name;int_name;203;
# ~250K usages.
@@ -406,12 +406,12 @@ highway|secondary|tunnel;[highway=secondary][tunnel?];;name;int_name;297;
# TODO: its a mismapping likely, if there is a bridge structure still, then it should be railway=disused.
railway|abandoned|bridge;[railway=abandoned][bridge?];;name;int_name;298;
man_made|lighthouse;299;
deprecated:highway|path|demanding_mountain_hiking:04.2024;[highway=path][sac_scale=demanding_mountain_hiking];x;name;int_name;300;highway|path|difficult
amenity|charging_station|motorcycle;[amenity=charging_station][motorcycle?];;name;int_name;300;
man_made|storage_tank;301;
man_made|silo;302;
power|generator;303;
highway|pedestrian|bridge;[highway=pedestrian][bridge?];;name;int_name;304;
amenity|charging_station|motorcar;[amenity=charging_station][motorcar?][capacity?];;name;int_name;305;
amenity|charging_station|motorcar;[amenity=charging_station][motorcar?][capacity?],[amenity=charging_station][motorcar?];;name;int_name;305;
natural|saddle;306;
mountain_pass;[mountain_pass];;name;int_name;307;
highway|raceway;308;
@@ -420,7 +420,7 @@ highway|primary_link|bridge;[highway=primary_link][bridge?];;name;int_name;310;
man_made|tower|communication;[man_made=tower][tower:type=communication];;name;int_name;311;
sport|equestrian;312;
tourism|information|office;[tourism=information][information=office];;name;int_name;313;
deprecated:highway|footway|hiking:04.2024;[highway=footway][sac_scale=hiking];x;name;int_name;314;highway|path
amenity|charging_station|carless;[amenity=charging_station][motorcar=not],[amenity=charging_station][motorcar=no];;name;int_name;314;
aeroway|gate;315;
# TODO: railway=preserved is deprecated in OSM, recommended mapping is railway:preserved=yes + railway=*
railway|preserved;316;
@@ -1193,7 +1193,7 @@ shop|tyres;1064;
craft|beekeeper;1065;
amenity|car_wash;1066;
amenity|veterinary;1067;
amenity|charging_station;1068;
amenity|charging_station;[amenity=charging_station];;name;int_name;1068;
amenity|childcare;1069;
craft|blacksmith;1070;
amenity|bicycle_parking;1071;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -559,8 +559,9 @@ area|z15-[amenity=marketplace],
area|z15-[office=diplomatic],
area|z15-[amenity=vehicle_inspection],
area|z15-[amenity=car_wash],
area|z15-[amenity=charging_station][motorcar?],
area|z15-[amenity=fuel],
area|z15-[amenity=charging_station][motorcar?],
area|z16-[amenity=charging_station],
area|z15-[amenity=motorcycle_parking],
area|z15-[amenity=bicycle_parking],
{fill-opacity: 1; fill-color: @general_area;}

View File

@@ -2399,18 +2399,28 @@ node|z17-[amenity=fuel],
node|z18-[amenity=fuel],
{font-size: 11;}
node|z15-[amenity=charging_station][motorcar?],
node|z16-[amenity=charging_station][motorcycle?],
node|z16-[amenity=charging_station][bicycle?],
node|z16-[amenity=charging_station][motorcar=not],
node|z16-[amenity=charging_station],
{icon-image: charging_station-small-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-s.svg;}
node|z15-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-m.svg;}
node|z14[amenity=charging_station][motorcar?][!capacity],
node|z14[amenity=charging_station][motorcar?][capacity=1],
node|z14[amenity=charging_station][motorcar?][capacity=2],
{icon-image: none;}
node|z15-[amenity=charging_station][motorcar?][!capacity],
node|z15-[amenity=charging_station][motorcar?][capacity=1],
node|z15-[amenity=charging_station][motorcar?][capacity=2],
node|z16-[amenity=charging_station],
{icon-image: charging-point-m.svg;}
{icon-image: charging_station-small-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging-station-s.svg;}
node|z15-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging-station-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
node|z14[amenity=charging_station][motorcar?],
{text-offset: 1;font-size: 10;icon-min-distance: 20;}
node|z15[amenity=charging_station][motorcar?],
{icon-min-distance: 20;}

View File

@@ -85,8 +85,12 @@ landuse-cemetery-christian # area z10- (also has icon z
=== 180
amenity-car_wash # area z15- (also has icon z17-, caption(optional) z17-)
amenity-charging_station # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-bicycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-carless # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcar # area z15- (also has icon z14-, caption(optional) z14-)
amenity-charging_station-motorcar-small # area z15- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-small # area z15- (also has icon z15-, caption(optional) z16-)
amenity-courthouse # area z15- (also has icon z17-, caption(optional) z17-)
amenity-fire_station # area z15- (also has icon z16-, caption(optional) z17-)
amenity-fuel # area z15- (also has icon z14-, caption(optional) z14-)

View File

@@ -374,13 +374,13 @@ tourism-attraction # icon z14- (also has captio
tourism-gallery # icon z15- (also has caption(optional) z15-)
=== 4300
amenity-charging_station-small # icon z15- (also has caption(optional) z16-, area z15-)
=== 4280
amenity-charging_station-motorcar # icon z14- (also has caption(optional) z14-, area z15-)
amenity-fuel # icon z14- (also has caption(optional) z14-, area z15-)
=== 4270
amenity-charging_station-motorcar-small # icon z16- (also has caption(optional) z16-, area z15-)
=== 4260
highway-services # icon z14- (also has caption(optional) z14-, area z13-)
=== 4250
@@ -424,13 +424,23 @@ highway-rest_area # icon z15- (also has captio
tourism-camp_site # icon z16- (also has caption(optional) z16-, area z13-)
tourism-caravan_site # icon z16- (also has caption(optional) z16-)
tourism-chalet # icon z16- (also has caption(optional) z16-)
=== 3850
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
=== 3800
amenity-charging_station # icon z16- (also has caption(optional) z16-)
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-)
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
amenity-charging_station-motorcycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3752
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3751
amenity-charging_station # icon z16- (also has caption(optional) z16-, area z16-)
=== 3750
amenity-charging_station-carless # icon z16- (also has caption(optional) z16-, area z16-)
=== 3749
railway-subway_entrance # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-adana # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-algiers # icon z16- (also has caption(optional) z17-)
@@ -1641,13 +1651,13 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-gallery # caption(optional) z15- (also has icon z15-)
# === -5700
# amenity-charging_station-small # caption(optional) z16- (also has icon z15-, area z15-)
# === -5720
# amenity-charging_station-motorcar # caption(optional) z14- (also has icon z14-, area z15-)
# amenity-fuel # caption(optional) z14- (also has icon z14-, area z15-)
# === -5730
# amenity-charging_station-motorcar-small # caption(optional) z16- (also has icon z16-, area z15-)
# === -5740
# highway-services # caption(optional) z14- (also has icon z14-, area z13-)
# === -5750
@@ -1691,13 +1701,23 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-camp_site # caption(optional) z16- (also has icon z16-, area z13-)
# tourism-caravan_site # caption(optional) z16- (also has icon z16-)
# tourism-chalet # caption(optional) z16- (also has icon z16-)
# === -6150
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# === -6200
# amenity-charging_station # caption(optional) z16- (also has icon z16-)
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-)
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# amenity-charging_station-motorcycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6248
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6249
# amenity-charging_station # caption(optional) z16- (also has icon z16-, area z16-)
# === -6250
# amenity-charging_station-carless # caption(optional) z16- (also has icon z16-, area z16-)
# === -6251
# railway-subway_entrance # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-adana # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-algiers # caption(optional) z17- (also has icon z16-)

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -78,6 +78,7 @@ leisure-sports_centre-sport-volleyball # area z13- (also has icon z
leisure-sports_centre-sport-yoga # area z13- (also has icon z16-, caption(optional) z16-)
=== 190
amenity-courthouse # area z15- (also has icon z17-, caption(optional) z17-)
amenity-grave_yard # area z10- (also has icon z17-, caption(optional) z17-)
amenity-grave_yard-christian # area z10- (also has icon z17-, caption(optional) z17-)
landuse-cemetery # area z10- (also has icon z14-, caption(optional) z15-)
@@ -85,9 +86,12 @@ landuse-cemetery-christian # area z10- (also has icon z
=== 180
amenity-car_wash # area z15- (also has icon z17-, caption(optional) z17-)
amenity-charging_station # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-bicycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-carless # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcar # area z15- (also has icon z14-, caption(optional) z14-)
amenity-charging_station-motorcar-small # area z15- (also has icon z16-, caption(optional) z16-)
amenity-courthouse # area z15- (also has icon z17-, caption(optional) z17-)
amenity-charging_station-motorcycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-small # area z15- (also has icon z15-, caption(optional) z16-)
amenity-fire_station # area z15- (also has icon z16-, caption(optional) z17-)
amenity-fuel # area z15- (also has icon z14-, caption(optional) z14-)
amenity-marketplace # area z15- (also has icon z16-, caption(optional) z16-)

View File

@@ -374,13 +374,13 @@ tourism-attraction # icon z14- (also has captio
tourism-gallery # icon z15- (also has caption(optional) z15-)
=== 4300
amenity-charging_station-small # icon z15- (also has caption(optional) z16-, area z15-)
=== 4280
amenity-charging_station-motorcar # icon z14- (also has caption(optional) z14-, area z15-)
amenity-fuel # icon z14- (also has caption(optional) z14-, area z15-)
=== 4270
amenity-charging_station-motorcar-small # icon z16- (also has caption(optional) z16-, area z15-)
=== 4260
highway-services # icon z14- (also has caption(optional) z14-, area z13-)
=== 4250
@@ -424,13 +424,23 @@ highway-rest_area # icon z14- (also has captio
tourism-camp_site # icon z13- (also has caption(optional) z13-, area z13-)
tourism-caravan_site # icon z13- (also has caption(optional) z13-)
tourism-chalet # icon z14- (also has caption(optional) z14-)
=== 3850
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
=== 3800
amenity-charging_station # icon z16- (also has caption(optional) z16-)
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-)
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
amenity-charging_station-motorcycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3752
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3751
amenity-charging_station # icon z16- (also has caption(optional) z16-, area z16-)
=== 3750
amenity-charging_station-carless # icon z16- (also has caption(optional) z16-, area z16-)
=== 3749
railway-subway_entrance # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-adana # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-algiers # icon z16- (also has caption(optional) z17-)
@@ -1644,13 +1654,13 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-gallery # caption(optional) z15- (also has icon z15-)
# === -5700
# amenity-charging_station-small # caption(optional) z16- (also has icon z15-, area z15-)
# === -5720
# amenity-charging_station-motorcar # caption(optional) z14- (also has icon z14-, area z15-)
# amenity-fuel # caption(optional) z14- (also has icon z14-, area z15-)
# === -5730
# amenity-charging_station-motorcar-small # caption(optional) z16- (also has icon z16-, area z15-)
# === -5740
# highway-services # caption(optional) z14- (also has icon z14-, area z13-)
# === -5750
@@ -1694,13 +1704,23 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-camp_site # caption(optional) z13- (also has icon z13-, area z13-)
# tourism-caravan_site # caption(optional) z13- (also has icon z13-)
# tourism-chalet # caption(optional) z14- (also has icon z14-)
# === -6150
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# === -6200
# amenity-charging_station # caption(optional) z16- (also has icon z16-)
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-)
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# amenity-charging_station-motorcycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6248
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6249
# amenity-charging_station # caption(optional) z16- (also has icon z16-, area z16-)
# === -6250
# amenity-charging_station-carless # caption(optional) z16- (also has icon z16-, area z16-)
# === -6251
# railway-subway_entrance # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-adana # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-algiers # caption(optional) z17- (also has icon z16-)

View File

@@ -350,9 +350,10 @@ area|z13-[highway=services],
area|z13-[highway=rest_area],
area|z13-[landuse=garages],
area|z15-[amenity=charging_station][motorcar?],
area|z15-[amenity=fuel],
area|z15-[amenity=recycling][recycling_type=centre],
area|z15-[amenity=fuel],
area|z15-[amenity=charging_station][motorcar?],
area|z16-[amenity=charging_station],
area|z17-[amenity=vehicle_inspection],
area|z17-[amenity=car_wash],
area|z17-[amenity=motorcycle_parking],

View File

@@ -630,16 +630,28 @@ node|z17[amenity=fuel],
node|z18-[amenity=fuel],
{icon-image: fuel-m.svg;font-size: 14.5;}
node|z14-[amenity=charging_station][motorcar?][!capacity],
node|z14-[amenity=charging_station][motorcar?][capacity=1],
node|z14-[amenity=charging_station][motorcar?][capacity=2],
node|z15-[amenity=charging_station][motorcar?],
node|z16-[amenity=charging_station][motorcycle?],
node|z16-[amenity=charging_station][bicycle?],
node|z16-[amenity=charging_station][motorcar=not],
node|z16-[amenity=charging_station],
{icon-image: charging-point-m.svg;}
node|z14-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging-station-m.svg;}
{icon-image: charging_station-small-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-s.svg;}
node|z15-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-m.svg;}
node|z14[amenity=charging_station][motorcar?][!capacity],
node|z14[amenity=charging_station][motorcar?][capacity=1],
node|z14[amenity=charging_station][motorcar?][capacity=2],
{icon-image: none;}
node|z15-[amenity=charging_station][motorcar?][!capacity],
node|z15-[amenity=charging_station][motorcar?][capacity=1],
node|z15-[amenity=charging_station][motorcar?][capacity=2],
{icon-image: charging_station-small-m.svg;}
node|z14[amenity=charging_station][motorcar?],
{text-offset: 1;font-size: 12.25;icon-min-distance: 20;}
node|z15[amenity=charging_station][motorcar?],
{icon-min-distance: 20;font-size: 12.5;}

View File

@@ -33,8 +33,12 @@ amenity-parking-street_side-private # area z15- (also has icon z
=== 160
amenity-car_wash # area z17- (also has icon z17-, caption(optional) z17-)
amenity-charging_station # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-bicycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-carless # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcar # area z15- (also has icon z14-, caption(optional) z14-)
amenity-charging_station-motorcar-small # area z15- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-small # area z15- (also has icon z15-, caption(optional) z16-)
amenity-fuel # area z15- (also has icon z12-, caption(optional) z12-)
amenity-recycling-centre # area z15- (also has icon z16-, caption(optional) z16-)
amenity-vehicle_inspection # area z17- (also has icon z17-)

View File

@@ -170,17 +170,28 @@ aeroway-aerodrome-international # icon z7- (also has caption
place-town # caption z8-
=== 3250
amenity-charging_station-small # icon z15- (also has caption(optional) z16-, area z15-)
=== 3210
amenity-charging_station-motorcar # icon z14- (also has caption(optional) z14-, area z15-)
amenity-fuel # icon z12- (also has caption(optional) z12-, area z15-)
=== 3200
amenity-charging_station-motorcar-small # icon z16- (also has caption(optional) z16-, area z15-)
=== 3190
amenity-charging_station # icon z16- (also has caption(optional) z16-)
amenity-vending_machine-fuel # icon z17- (also has caption(optional) z17-)
=== 3153
amenity-charging_station-motorcycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3152
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3151
amenity-charging_station # icon z16- (also has caption(optional) z16-, area z16-)
=== 3150
amenity-charging_station-carless # icon z16- (also has caption(optional) z16-, area z16-)
=== 3149
railway-station-subway-moscow # icon z11-15 (also has caption(optional) z15)
railway-station-subway-spb # icon z11-16 (also has caption(optional) z15-16)
=== 3100
@@ -529,9 +540,6 @@ natural-beach-gravel # caption z15- (also has are
natural-beach-sand # caption z15- (also has area z10-)
=== 900
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-)
=== 850
historic-boundary_stone # icon z16- (also has caption(optional) z16-)
historic-gallows # icon z16- (also has caption(optional) z16-)
historic-pillory # icon z16- (also has caption(optional) z16-)
@@ -785,17 +793,28 @@ entrance-emergency # icon z19- (also has captio
# aeroway-aerodrome-international # caption(optional) z10- (also has icon z7-, area z10-)
# === -6700
# amenity-charging_station-small # caption(optional) z16- (also has icon z15-, area z15-)
# === -6790
# amenity-charging_station-motorcar # caption(optional) z14- (also has icon z14-, area z15-)
# amenity-fuel # caption(optional) z12- (also has icon z12-, area z15-)
# === -6800
# amenity-charging_station-motorcar-small # caption(optional) z16- (also has icon z16-, area z15-)
# === -6810
# amenity-charging_station # caption(optional) z16- (also has icon z16-)
# amenity-vending_machine-fuel # caption(optional) z17- (also has icon z17-)
# === -6847
# amenity-charging_station-motorcycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6848
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6849
# amenity-charging_station # caption(optional) z16- (also has icon z16-, area z16-)
# === -6850
# amenity-charging_station-carless # caption(optional) z16- (also has icon z16-, area z16-)
# === -6851
# railway-station-subway-moscow # caption(optional) z15 (also has icon z11-15)
# railway-station-subway-spb # caption(optional) z15-16 (also has icon z11-16)
# === -6900
@@ -1058,9 +1077,6 @@ entrance-emergency # icon z19- (also has captio
# amenity-hospital # caption(optional) z15- (also has icon z15-)
# === -9000
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-)
# === -9150
# historic-boundary_stone # caption(optional) z16- (also has icon z16-)
# historic-gallows # caption(optional) z16- (also has icon z16-)
# historic-pillory # caption(optional) z16- (also has icon z16-)

View File

@@ -351,6 +351,11 @@ private:
// - both amenity-charging_station-motorcar and amenity-charging_station-bicycle are left;
void LeaveLongestTypes(std::vector<generator::TypeStrings> & matchedTypes)
{
auto const isChargingStation = [](auto const & lhs, auto const & rhs)
{
return lhs.size() > 1 && rhs.size() > 1 && lhs.at(1) == "charging_station" && rhs.at(1) == "charging_station" && lhs.at(0) == "amenity" && rhs.at(0) == "amenity";
};
auto const equalPrefix = [](auto const & lhs, auto const & rhs)
{
size_t const prefixSz = std::min(lhs.size(), rhs.size());
@@ -369,8 +374,11 @@ void LeaveLongestTypes(std::vector<generator::TypeStrings> & matchedTypes)
return lhs < rhs;
};
auto const isEqual = [&equalPrefix](auto const & lhs, auto const & rhs)
auto const isEqual = [&equalPrefix, &isChargingStation](auto const & lhs, auto const & rhs)
{
if (isChargingStation(lhs, rhs))
return false;
if (equalPrefix(lhs, rhs))
{
// Keep longest type only, so return equal is true.

View File

@@ -43,9 +43,10 @@
"type.leisure.adult_gaming_centre" = "Spielhalle für Erwachsene";
"type.leisure.amusement_arcade" = "Spielhalle für Unterhaltungsspiele";
"type.amenity.charging_station" = "Ladestation";
"type.amenity.charging_station.bicycle" = "Fahrrad-Ladestation";
"type.amenity.charging_station.motorcar" = "Kfz-Ladestation";
"type.amenity.charging_station.motorcar.small" = "Kfz-Ladestation";
"type.amenity.charging_station.motorcar" = "Autos";
"type.amenity.charging_station.motorcycle" = "Motorräder";
"type.amenity.charging_station.bicycle" = "Fahrräder";
"type.amenity.charging_station.small" = "Begrenzte Kapazität";
"type.amenity.childcare" = "Kindertagesstätte";
"type.amenity.cinema" = "Kino";
"type.leisure.bowling_alley" = "Bowlingbahn";

View File

@@ -48,9 +48,10 @@
"type.leisure.adult_gaming_centre" = "Adult Gaming Centre";
"type.leisure.amusement_arcade" = "Arcade";
"type.amenity.charging_station" = "Charging Station";
"type.amenity.charging_station.bicycle" = "Bicycle Charging Station";
"type.amenity.charging_station.motorcar" = "Car Charging Station";
"type.amenity.charging_station.motorcar.small" = "Car Charging Point";
"type.amenity.charging_station.motorcar" = "Cars";
"type.amenity.charging_station.motorcycle" = "Motorcycles";
"type.amenity.charging_station.bicycle" = "Bicycles";
"type.amenity.charging_station.small" = "Limited Capacity";
"type.amenity.childcare" = "Nursery";
"type.amenity.cinema" = "Cinema";
"type.leisure.bowling_alley" = "Bowling Alley";

View File

@@ -55,9 +55,10 @@
"type.leisure.adult_gaming_centre" = "Adult Gaming Centre";
"type.leisure.amusement_arcade" = "Arcade";
"type.amenity.charging_station" = "Charging Station";
"type.amenity.charging_station.bicycle" = "Bicycle Charging Station";
"type.amenity.charging_station.motorcar" = "Car Charging Station";
"type.amenity.charging_station.motorcar.small" = "Car Charging Point";
"type.amenity.charging_station.motorcar" = "Cars";
"type.amenity.charging_station.motorcycle" = "Motorcycles";
"type.amenity.charging_station.bicycle" = "Bicycles";
"type.amenity.charging_station.small" = "Limited Capacity";
"type.amenity.childcare" = "Nursery";
"type.amenity.cinema" = "Cinema";
"type.leisure.bowling_alley" = "Bowling Alley";

View File

@@ -191,9 +191,26 @@ void TypesHolder::SortBySpec()
auto const getPriority = [&cl](uint32_t type) { return cl.GetObject(type)->GetMaxOverlaysPriority(); };
auto const & checker = UselessTypesChecker::Instance();
auto const & isChargingStationChecker = ftypes::IsCharingStationChecker::Instance();
auto const & isChargingStationSmallChecker = ftypes::IsCharingStationSmallChecker::Instance();
std::stable_sort(begin(), end(), [&checker, &getPriority](uint32_t t1, uint32_t t2)
std::stable_sort(begin(), end(), [&checker, &getPriority, &isChargingStationChecker, &isChargingStationSmallChecker](uint32_t t1, uint32_t t2)
{
if (isChargingStationChecker(t1) && isChargingStationChecker(t2))
{
if (isChargingStationSmallChecker(t1) && !isChargingStationSmallChecker(t2))
return false;
else if (!isChargingStationSmallChecker(t1) && isChargingStationSmallChecker(t2))
return true;
uint8_t const t1Level = ftype::GetLevel(t1);
uint8_t const t2Level = ftype::GetLevel(t2);
if (t1Level == 2 && t2Level != 2)
return true;
else if (t1Level != 2 && t2Level == 2)
return false;
}
int const p1 = getPriority(t1);
int const p2 = getPriority(t2);
if (p1 != p2)
@@ -403,6 +420,13 @@ void FeatureParams::SetRwSubwayType(char const * cityName)
FeatureParams::TypesResult FeatureParams::FinishAddingTypesEx()
{
auto const & cl = classif();
auto charingStation = cl.GetTypeByPath({"amenity", "charging_station"});
auto motorcarCharingStation = cl.GetTypeByPath({"amenity", "charging_station", "motorcar"});
auto carelessCharingStation = cl.GetTypeByPath({"amenity", "charging_station", "carless"});
if (IsTypeExist(charingStation) && !IsTypeExist(motorcarCharingStation) && !IsTypeExist(carelessCharingStation))
AddType(motorcarCharingStation);
base::SortUnique(m_types);
TypesResult res = TYPES_GOOD;

View File

@@ -753,6 +753,30 @@ IsDirectionalChecker::IsDirectionalChecker() : ftypes::BaseChecker(1 /* level */
m_types.push_back(c.GetTypeByPath({"lateral"}));
}
IsCharingStationChecker::IsCharingStationChecker() : ftypes::BaseChecker(2 /* level */)
{
Classificator const & c = classif();
m_types.push_back(c.GetTypeByPath({"amenity", "charging_station"}));
}
IsCharingStationCarChecker::IsCharingStationCarChecker() : ftypes::BaseChecker(3 /* level */)
{
Classificator const & c = classif();
m_types.push_back(c.GetTypeByPath({"amenity", "charging_station", "motorcar"}));
}
IsCharingStationCarlessChecker::IsCharingStationCarlessChecker() : ftypes::BaseChecker(3 /* level */)
{
Classificator const & c = classif();
m_types.push_back(c.GetTypeByPath({"amenity", "charging_station", "carless"}));
}
IsCharingStationSmallChecker::IsCharingStationSmallChecker() : ftypes::BaseChecker(3 /* level */)
{
Classificator const & c = classif();
m_types.push_back(c.GetTypeByPath({"amenity", "charging_station", "small"}));
}
IsTaxiChecker::IsTaxiChecker()
{
Classificator const & c = classif();

View File

@@ -519,6 +519,38 @@ public:
DECLARE_CHECKER_INSTANCE(IsDirectionalChecker);
};
class IsCharingStationChecker : public ftypes::BaseChecker
{
IsCharingStationChecker();
public:
DECLARE_CHECKER_INSTANCE(IsCharingStationChecker);
};
class IsCharingStationCarChecker : public ftypes::BaseChecker
{
IsCharingStationCarChecker();
public:
DECLARE_CHECKER_INSTANCE(IsCharingStationCarChecker);
};
class IsCharingStationCarlessChecker : public ftypes::BaseChecker
{
IsCharingStationCarlessChecker();
public:
DECLARE_CHECKER_INSTANCE(IsCharingStationCarlessChecker);
};
class IsCharingStationSmallChecker : public ftypes::BaseChecker
{
IsCharingStationSmallChecker();
public:
DECLARE_CHECKER_INSTANCE(IsCharingStationSmallChecker);
};
class IsTaxiChecker : public BaseChecker
{
IsTaxiChecker();

View File

@@ -121,12 +121,19 @@ std::string MapObject::GetLocalizedAllTypes(bool withMainType) const
auto const & isPoi = ftypes::IsPoiChecker::Instance();
auto const & isDirectional = ftypes::IsDirectionalChecker::Instance();
auto const & amenityChecker = ftypes::IsAmenityChecker::Instance();
auto const & charingStationCarChecker = ftypes::IsCharingStationCarChecker::Instance();
auto const & charingStationCarlessChecker = ftypes::IsCharingStationCarlessChecker::Instance();
auto const & charingStationSmallChecker = ftypes::IsCharingStationSmallChecker::Instance();
std::ostringstream oss;
bool isMainType = true;
bool isFirst = true;
for (auto const type : copy)
{
// Ignore some charing stations
if (charingStationCarlessChecker(type) || ((charingStationCarChecker(type) || charingStationSmallChecker(type)) && charingStationCarlessChecker(copy)))
continue;
if (isMainType && !withMainType)
{
isMainType = false;

View File

@@ -87,6 +87,7 @@ std::map<std::string, BookmarkMatchInfo> const kFeatureTypeToBookmarkMatchInfo =
{"amenity-charging_station", {kml::BookmarkIcon::ChargingStation, BookmarkBaseType::Gas}},
{"amenity-charging_station-bicycle", {kml::BookmarkIcon::ChargingStation, BookmarkBaseType::Gas}},
{"amenity-charging_station-motorcycle", {kml::BookmarkIcon::ChargingStation, BookmarkBaseType::Gas}},
{"amenity-charging_station-motorcar", {kml::BookmarkIcon::ChargingStation, BookmarkBaseType::Gas}},
{"amenity-fuel", {kml::BookmarkIcon::Gas, BookmarkBaseType::Gas}},

View File

@@ -229,6 +229,7 @@ private:
{{"amenity", "fuel"}, SearchMarkType::Fuel},
{{"amenity", "charging_station"}, SearchMarkType::ChargingStation},
{{"amenity", "charging_station", "bicycle"}, SearchMarkType::ChargingStation},
{{"amenity", "charging_station", "motorcycle"}, SearchMarkType::ChargingStation},
{{"amenity", "charging_station", "motorcar"}, SearchMarkType::ChargingStation},
{{"shop", "alcohol"}, SearchMarkType::ShopAlcohol},
{{"shop", "beverages"}, SearchMarkType::ShopAlcohol},