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 @@ -159,6 +159,7 @@ m_defaultMinZoomLevels[GeoDataPlacemark::TransportAirportRunway] = 15; m_defaultMinZoomLevels[GeoDataPlacemark::TransportAirportTaxiway] = 15; m_defaultMinZoomLevels[GeoDataPlacemark::TransportAirportApron] = 15; + m_defaultMinZoomLevels[GeoDataPlacemark::TransportSpeedCamera] = 17; #if 0 // not needed as long as default min zoom level is 15 for(int i = GeoDataPlacemark::AccomodationCamping; i <= GeoDataPlacemark::ReligionSikh; i++) @@ -737,6 +738,7 @@ m_defaultStyle[GeoDataPlacemark::TransportAirportRunway] = createHighwayStyle("#bbbbcc", "#bbbbcc", osmFont, "000000", 0, 1, Qt::NoPen); m_defaultStyle[GeoDataPlacemark::TransportAirportTaxiway] = createHighwayStyle("#bbbbcc", "#bbbbcc", osmFont, "000000", 0, 1, Qt::NoPen); m_defaultStyle[GeoDataPlacemark::TransportAirportApron] = createWayStyle("#e9d1ff", Qt::transparent, true, false); + m_defaultStyle[GeoDataPlacemark::TransportSpeedCamera] = createOsmPOIStyle(osmFont, "individual/speedcamera"); m_defaultStyle[GeoDataPlacemark::NaturalWater] = createStyle(4, 0, waterColor, waterColor, true, false, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false, QVector< qreal >(), @@ -1168,6 +1170,7 @@ s_visualCategories[OsmTag("transport", "train_station")] = GeoDataPlacemark::TransportTrainStation; s_visualCategories[OsmTag("transport", "tram_stop")] = GeoDataPlacemark::TransportTramStop; s_visualCategories[OsmTag("transport", "bus_stop")] = GeoDataPlacemark::TransportBusStop; + s_visualCategories[OsmTag("highway", "speed_camera")] = GeoDataPlacemark::TransportSpeedCamera; s_visualCategories[OsmTag("amenity", "bicycle_parking")] = GeoDataPlacemark::TransportBicycleParking; s_visualCategories[OsmTag("amenity", "motorcycle_parking")] = GeoDataPlacemark::TransportMotorcycleParking; s_visualCategories[OsmTag("railway", "subway_entrance")] = GeoDataPlacemark::TransportSubwayEntrance; @@ -1579,6 +1582,7 @@ paintLayerOrder << Private::createPaintLayerItem("Point", GeoDataPlacemark::EducationSchool); paintLayerOrder << Private::createPaintLayerItem("Point", GeoDataPlacemark::EducationUniversity); paintLayerOrder << Private::createPaintLayerItem("Point", GeoDataPlacemark::HealthHospital); + paintLayerOrder << Private::createPaintLayerItem("Point", GeoDataPlacemark::TransportSpeedCamera); paintLayerOrder << Private::createPaintLayerItem("Point", GeoDataPlacemark::MilitaryDangerArea); paintLayerOrder << QStringLiteral("Polygon/Building/frame"); @@ -1833,6 +1837,7 @@ visualCategoryNames[GeoDataPlacemark::TransportTaxiRank] = "TransportTaxiRank"; visualCategoryNames[GeoDataPlacemark::TransportTrainStation] = "TransportTrainStation"; visualCategoryNames[GeoDataPlacemark::TransportTramStop] = "TransportTramStop"; + visualCategoryNames[GeoDataPlacemark::TransportSpeedCamera] = "TransportSpeedCamera"; visualCategoryNames[GeoDataPlacemark::TransportBicycleParking] = "TransportBicycleParking"; visualCategoryNames[GeoDataPlacemark::TransportMotorcycleParking] = "TransportMotorcycleParking"; visualCategoryNames[GeoDataPlacemark::TransportSubwayEntrance] = "TransportSubwayEntrance"; 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 @@ -207,6 +207,9 @@ addTagDescription(m_description, QStringLiteral("backrest"), QStringLiteral("no"), tr("No backrest", "A bench provides no backrest to lean against")); } else if (category == GeoDataPlacemark::AmenityWasteBasket) { addTagValue(m_description, QStringLiteral("waste")); + } else if (category == GeoDataPlacemark::TransportSpeedCamera) { + addTagValue(m_description, QStringLiteral("maxspeed"), tr("%1 km/h")); + addTagValue(m_description, "ref"); } if (category == GeoDataPlacemark::AmenityRecycling || category == GeoDataPlacemark::AmenityPostBox) { 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 @@ -368,6 +368,7 @@ TransportBicycleParking, TransportMotorcycleParking, TransportSubwayEntrance, + TransportSpeedCamera, // OpenStreetMap category religion ReligionPlaceOfWorship, 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 @@ -584,6 +584,7 @@ case TransportBicycleParking: return GeoDataPlacemarkPrivate::tr("Bicycle Parking"); case TransportMotorcycleParking: return GeoDataPlacemarkPrivate::tr("Motorcycle Parking"); case TransportSubwayEntrance: return GeoDataPlacemarkPrivate::tr("Subway Entrance"); + case TransportSpeedCamera: return GeoDataPlacemarkPrivate::tr("Speed Camera"); case ReligionPlaceOfWorship: return GeoDataPlacemarkPrivate::tr("Place Of Worship"); case ReligionBahai: return GeoDataPlacemarkPrivate::tr("Bahai"); case ReligionBuddhist: return GeoDataPlacemarkPrivate::tr("Buddhist"); diff --git a/src/plugins/runner/local-osm-search/LocalOsmSearchRunner.cpp b/src/plugins/runner/local-osm-search/LocalOsmSearchRunner.cpp --- a/src/plugins/runner/local-osm-search/LocalOsmSearchRunner.cpp +++ b/src/plugins/runner/local-osm-search/LocalOsmSearchRunner.cpp @@ -79,7 +79,7 @@ m_categoryMap[OsmPlacemark::TransportTramStop] = GeoDataPlacemark::TransportTramStop; m_categoryMap[OsmPlacemark::TransportRentalBicycle] = GeoDataPlacemark::TransportRentalBicycle; m_categoryMap[OsmPlacemark::TransportRentalCar] = GeoDataPlacemark::TransportRentalCar; - m_categoryMap[OsmPlacemark::TransportSpeedCamera] = GeoDataPlacemark::OsmSite; + m_categoryMap[OsmPlacemark::TransportSpeedCamera] = GeoDataPlacemark::TransportSpeedCamera; m_categoryMap[OsmPlacemark::TransportTaxiRank] = GeoDataPlacemark::TransportTaxiRank; m_categoryMap[OsmPlacemark::PlacesRegion] = GeoDataPlacemark::OsmSite; m_categoryMap[OsmPlacemark::PlacesCounty] = GeoDataPlacemark::OsmSite; diff --git a/src/plugins/runner/osm/OsmNode.cpp b/src/plugins/runner/osm/OsmNode.cpp --- a/src/plugins/runner/osm/OsmNode.cpp +++ b/src/plugins/runner/osm/OsmNode.cpp @@ -145,6 +145,7 @@ popularities << GeoDataPlacemark::HealthHospital; popularities << GeoDataPlacemark::AmenityToilets; popularities << GeoDataPlacemark::MoneyAtm; + popularities << GeoDataPlacemark::TransportSpeedCamera; popularities << GeoDataPlacemark::NaturalPeak;