diff --git a/src/lib/marble/StyleBuilder.cpp b/src/lib/marble/StyleBuilder.cpp --- a/src/lib/marble/StyleBuilder.cpp +++ b/src/lib/marble/StyleBuilder.cpp @@ -484,6 +484,8 @@ m_defaultStyle[GeoDataPlacemark::AmenityWasteBasket] = createOsmPOIStyle(osmFont, "individual/waste_basket.10", amenityColor); m_defaultStyle[GeoDataPlacemark::AmenityWasteBasket]->iconStyle().setScale(0.75); m_defaultStyle[GeoDataPlacemark::AmenityChargingStation] = createOsmPOIStyle(osmFont, "transportation/charging_station"); + m_defaultStyle[GeoDataPlacemark::AmenityCarWash] = createOsmPOIStyle(osmFont, "amenity/car_wash", amenityColor); + m_defaultStyle[GeoDataPlacemark::AmenitySocialFacility] = createOsmPOIStyle(osmFont, "amenity/social_facility", amenityColor); m_defaultStyle[GeoDataPlacemark::AmenityDrinkingWater] = createOsmPOIStyle(osmFont, "amenity/drinking_water.16", amenityColor); @@ -559,6 +561,7 @@ m_defaultStyle[GeoDataPlacemark::HistoricMemorial] = createOsmPOIStyle(osmFont, "amenity/tourist_memorial.16", amenityColor); m_defaultStyle[GeoDataPlacemark::TouristAttraction] = createOsmPOIStyle(osmFont, "amenity/tourist_memorial.16", amenityColor); + m_defaultStyle[GeoDataPlacemark::TouristArtwork] = createOsmPOIStyle(osmFont, "amenity/artwork", amenityColor); m_defaultStyle[GeoDataPlacemark::TouristCastle] = createOsmPOIRingStyle(osmFont, "amenity/cinema.16", amenityColor); m_defaultStyle[GeoDataPlacemark::TouristCinema] = createOsmPOIStyle(osmFont, "amenity/cinema.16", amenityColor); m_defaultStyle[GeoDataPlacemark::TouristInformation] = createOsmPOIStyle(osmFont, "amenity/information.16", amenityColor); @@ -869,6 +872,8 @@ s_visualCategories[OsmTag("amenity", "drinking_water")] = GeoDataPlacemark::AmenityDrinkingWater; s_visualCategories[OsmTag("amenity", "graveyard")] = GeoDataPlacemark::AmenityGraveyard; s_visualCategories[OsmTag("amenity", "charging_station")] = GeoDataPlacemark::AmenityChargingStation; + s_visualCategories[OsmTag("amenity", "car_wash")] = GeoDataPlacemark::AmenityCarWash; + s_visualCategories[OsmTag("amenity", "social_facility")] = GeoDataPlacemark::AmenitySocialFacility; s_visualCategories[OsmTag("amenity", "dentist")] = GeoDataPlacemark::HealthDentist; s_visualCategories[OsmTag("amenity", "pharmacy")] = GeoDataPlacemark::HealthPharmacy; @@ -961,6 +966,7 @@ s_visualCategories[OsmTag("historic", "memorial")] = GeoDataPlacemark::HistoricMemorial; s_visualCategories[OsmTag("tourism", "attraction")] = GeoDataPlacemark::TouristAttraction; + s_visualCategories[OsmTag("tourism", "artwork")] = GeoDataPlacemark::TouristArtwork; s_visualCategories[OsmTag("tourism", "camp_site")] = GeoDataPlacemark::AccomodationCamping; s_visualCategories[OsmTag("tourism", "hostel")] = GeoDataPlacemark::AccomodationHostel; s_visualCategories[OsmTag("tourism", "hotel")] = GeoDataPlacemark::AccomodationHotel; @@ -1178,6 +1184,8 @@ s_defaultMinZoomLevels[GeoDataPlacemark::AmenityRecycling]= 17; s_defaultMinZoomLevels[GeoDataPlacemark::AmenityShelter]= 17; s_defaultMinZoomLevels[GeoDataPlacemark::AmenityChargingStation] = 17; + s_defaultMinZoomLevels[GeoDataPlacemark::AmenityCarWash] = 17; + s_defaultMinZoomLevels[GeoDataPlacemark::AmenitySocialFacility] = 16; s_defaultMinZoomLevels[GeoDataPlacemark::BarrierCityWall] = 15; s_defaultMinZoomLevels[GeoDataPlacemark::BarrierGate] = 17; @@ -1343,6 +1351,7 @@ s_defaultMinZoomLevels[GeoDataPlacemark::TouristAlpineHut] = 13; s_defaultMinZoomLevels[GeoDataPlacemark::TouristWildernessHut] = 13; s_defaultMinZoomLevels[GeoDataPlacemark::TouristAttraction] = 17; + s_defaultMinZoomLevels[GeoDataPlacemark::TouristArtwork] = 15; s_defaultMinZoomLevels[GeoDataPlacemark::TouristCastle] = 15; s_defaultMinZoomLevels[GeoDataPlacemark::TouristCinema] = 16; s_defaultMinZoomLevels[GeoDataPlacemark::TouristMuseum] = 16; @@ -1977,6 +1986,7 @@ popularities << GeoDataPlacemark::ManmadeWindMill; popularities << GeoDataPlacemark::TouristAttraction; + popularities << GeoDataPlacemark::TouristArtwork; popularities << GeoDataPlacemark::TouristCastle; popularities << GeoDataPlacemark::TouristCinema; popularities << GeoDataPlacemark::TouristInformation; @@ -2242,6 +2252,8 @@ visualCategoryNames[GeoDataPlacemark::AmenityDrinkingWater] = "AmenityDrinkingWater"; visualCategoryNames[GeoDataPlacemark::AmenityGraveyard] = "AmenityGraveyard"; visualCategoryNames[GeoDataPlacemark::AmenityChargingStation] = "ChargingStation"; + visualCategoryNames[GeoDataPlacemark::AmenityCarWash] = "CarWash"; + visualCategoryNames[GeoDataPlacemark::AmenitySocialFacility] = "SocialFacility"; visualCategoryNames[GeoDataPlacemark::BarrierCityWall] = "BarrierCityWall"; visualCategoryNames[GeoDataPlacemark::BarrierGate] = "BarrierGate"; visualCategoryNames[GeoDataPlacemark::BarrierLiftGate] = "BarrierLiftGate"; @@ -2307,6 +2319,7 @@ visualCategoryNames[GeoDataPlacemark::ManmadeWaterTower] = "ManmadeWaterTower"; visualCategoryNames[GeoDataPlacemark::ManmadeWindMill] = "ManmadeWindMill"; visualCategoryNames[GeoDataPlacemark::TouristAttraction] = "TouristAttraction"; + visualCategoryNames[GeoDataPlacemark::TouristArtwork] = "TouristArtwork"; visualCategoryNames[GeoDataPlacemark::TouristCastle] = "TouristCastle"; visualCategoryNames[GeoDataPlacemark::TouristCinema] = "TouristCinema"; visualCategoryNames[GeoDataPlacemark::TouristInformation] = "TouristInformation"; diff --git a/src/lib/marble/declarative/Placemark.cpp b/src/lib/marble/declarative/Placemark.cpp --- a/src/lib/marble/declarative/Placemark.cpp +++ b/src/lib/marble/declarative/Placemark.cpp @@ -293,6 +293,8 @@ addTagDescription(m_description, QStringLiteral("reservation"), QStringLiteral("required"), tr("Reservation is required")); addTagDescription(m_description, QStringLiteral("reservation"), QStringLiteral("recommended"), tr("Reservation is recommended", "You should make reservation")); addTagDescription(m_description, QStringLiteral("reservation"), QStringLiteral("members_only"), tr("Only for members", "Reservation is only possible for members of the organisation running the hut")); + } else if (category == GeoDataPlacemark::TouristArtwork) { + addTagValue(m_description, QStringLiteral("artist_name"), tr("By %1")); } else if (category == GeoDataPlacemark::AmenityChargingStation) { addTagValue(m_description, QStringLiteral("capacity"), tr("%1 vehicles")); addTagValue(m_description, QStringLiteral("amperage"), tr("%1 ampere")); @@ -320,6 +322,41 @@ addTagDescription(m_description, QStringLiteral("socket"), QStringLiteral("tesla_standard"), tr("%1 Tesla standard plugs")); addTagDescription(m_description, QStringLiteral("socket"), QStringLiteral("tesla_supercharger"), tr("%1 Tesla standard plugs (Supercharger)")); addTagDescription(m_description, QStringLiteral("socket"), QStringLiteral("tesla_roadster"), tr("%1 Tesla roadster plugs")); + } else if (category == GeoDataPlacemark::AmenityCarWash) { + addTagValue(m_description, QStringLiteral("maxwidth"), tr("Maximum vehicle width: %1")); + addTagValue(m_description, QStringLiteral("maxheight"), tr("Maximum vehicle height: %1")); + + addTagDescription(m_description, QStringLiteral("self_service"), QStringLiteral("yes"), tr("Self-service")); + addTagDescription(m_description, QStringLiteral("self_service"), QStringLiteral("no"), tr("No self-service")); + addTagDescription(m_description, QStringLiteral("automated"), QStringLiteral("yes"), tr("Automated")); + addTagDescription(m_description, QStringLiteral("automated"), QStringLiteral("no"), tr("Manual")); + } else if (category == GeoDataPlacemark::AmenitySocialFacility) { + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("group_home"), tr("Group home")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("nursing_home"), tr("Nursing home")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("assisted_living"), tr("Assisted living", "Like group home but for more independent people, e.g. who has flats")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("day_care"), tr("Nursing services on a daily basis")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("shelter"), tr("Shelter")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("ambulatory_care"), tr("Ambulatory care")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("outreach"), tr("Social welfare services")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("workshop"), tr("Employment and workshops for offenders and people with disabilities")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("food_bank"), tr("Pre-packaged food for free or below market price")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("soup_kitchen"), tr("Prepared meals for free or below market price")); + addTagDescription(m_description, QStringLiteral("social_facility"), QStringLiteral("dairy_kitchen"), tr("Free dairy food for certain groups of people, defined by local regulations")); + + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("abused"), tr("For abused")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("child"), tr("For children")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("disabled"), tr("For people with physical disabilities")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("diseased"), tr("For those who suffer of a disease")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("drug_addicted"), tr("For drug-addicted")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("homeless"), tr("For homeless")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("juvenile"), tr("For juvenile")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("mental_health"), tr("For those with mental/psychological problems")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("migrant"), tr("For migrants")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("orphan"), tr("For orphans")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("senior"), tr("For elder people")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("underprivileged"), tr("For poor or disadvantaged people")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("unemployed"), tr("For unemployed")); + addTagDescription(m_description, QStringLiteral("social_facility:for"), QStringLiteral("victim"), tr("For victims of crimes, such as a robbery or hate")); } if (category == GeoDataPlacemark::TransportBicycleParking || category == GeoDataPlacemark::TransportMotorcycleParking) { diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.h b/src/lib/marble/geodata/data/GeoDataPlacemark.h --- a/src/lib/marble/geodata/data/GeoDataPlacemark.h +++ b/src/lib/marble/geodata/data/GeoDataPlacemark.h @@ -270,6 +270,8 @@ AmenityDrinkingWater, AmenityGraveyard, AmenityChargingStation, + AmenityCarWash, + AmenitySocialFacility, // OpenStreetMap category Barrier BarrierCityWall, @@ -343,6 +345,7 @@ // OpenStreetMap category Tourist + TouristArtwork, TouristAttraction, TouristCastle, TouristCinema, diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp --- a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp +++ b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp @@ -497,6 +497,8 @@ case AmenityDrinkingWater: return GeoDataPlacemarkPrivate::tr("Drinking Water"); case AmenityGraveyard: return GeoDataPlacemarkPrivate::tr("Graveyard"); case AmenityChargingStation: return GeoDataPlacemarkPrivate::tr("Charging Station"); + case AmenityCarWash: return GeoDataPlacemarkPrivate::tr("Car Wash"); + case AmenitySocialFacility: return GeoDataPlacemarkPrivate::tr("Social Facility"); case BarrierCityWall: return GeoDataPlacemarkPrivate::tr("City Wall"); case BarrierGate: return GeoDataPlacemarkPrivate::tr("Gate"); case BarrierLiftGate: return GeoDataPlacemarkPrivate::tr("Lift Gate"); @@ -562,6 +564,7 @@ case ManmadeWaterTower: return GeoDataPlacemarkPrivate::tr("Water Tower"); case ManmadeWindMill: return GeoDataPlacemarkPrivate::tr("Wind Mill"); case TouristAttraction: return GeoDataPlacemarkPrivate::tr("Tourist Attraction"); + case TouristArtwork: return GeoDataPlacemarkPrivate::tr("Artwork"); case TouristCastle: return GeoDataPlacemarkPrivate::tr("Castle"); case TouristCinema: return GeoDataPlacemarkPrivate::tr("Cinema"); case TouristInformation: return GeoDataPlacemarkPrivate::tr("Information");