[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [marble] src/lib/marble: let visual categories only be defined for placemarks
From: Bernhard Beschow <bbeschow () cs ! tu-berlin ! de>
Date: 2016-10-03 14:10:49
Message-ID: E1br3xB-0005FV-EB () code ! kde ! org
[Download RAW message or body]
Git commit 405038106b41ba30da316641bef8231d7316fddd by Bernhard Beschow.
Committed on 03/10/2016 at 13:58.
Pushed by beschow into branch 'master'.
let visual categories only be defined for placemarks
Visual category should be a relation between styles and geometries.
M +1 -1 src/lib/marble/BookmarkManager.cpp
M +1 -1 src/lib/marble/PlacemarkLayout.cpp
M +8 -13 src/lib/marble/StyleBuilder.cpp
M +2 -2 src/lib/marble/StyleBuilder.h
M +0 -315 src/lib/marble/geodata/data/GeoDataFeature.cpp
M +0 -16 src/lib/marble/geodata/data/GeoDataFeature.h
M +0 -5 src/lib/marble/geodata/data/GeoDataFeature_p.h
M +0 -1 src/lib/marble/geodata/data/GeoDataFolder.cpp
M +312 -0 src/lib/marble/geodata/data/GeoDataPlacemark.cpp
M +19 -3 src/lib/marble/geodata/data/GeoDataPlacemark.h
M +8 -3 src/lib/marble/geodata/data/GeoDataPlacemark_p.h
M +8 -2 src/lib/marble/graphicsview/GeoGraphicsItem.cpp
M +6 -1 src/lib/marble/layers/GeometryLayer.cpp
http://commits.kde.org/marble/405038106b41ba30da316641bef8231d7316fddd
diff --git a/src/lib/marble/BookmarkManager.cpp b/src/lib/marble/BookmarkManager.cpp
index c1740e7..08e016e 100644
--- a/src/lib/marble/BookmarkManager.cpp
+++ b/src/lib/marble/BookmarkManager.cpp
@@ -142,7 +142,7 @@ void BookmarkManager::addBookmark( GeoDataContainer *container, \
const GeoDataPla }
if (d->m_styleBuilder && bookmark->style()->iconStyle().iconPath().isEmpty()) {
StyleParameters style;
- style.feature = bookmark;
+ style.placemark = bookmark;
bookmark->setStyle(GeoDataStyle::Ptr(new \
GeoDataStyle(*d->m_styleBuilder->createStyle(style)))); }
d->m_treeModel->addFeature( container, bookmark );
diff --git a/src/lib/marble/PlacemarkLayout.cpp b/src/lib/marble/PlacemarkLayout.cpp
index eb7a37f..362f722 100644
--- a/src/lib/marble/PlacemarkLayout.cpp
+++ b/src/lib/marble/PlacemarkLayout.cpp
@@ -567,7 +567,7 @@ bool PlacemarkLayout::layoutPlacemark( const GeoDataPlacemark \
*placemark, qreal // create a new one...
StyleParameters parameters;
// @todo: Set / adjust to tile level
- parameters.feature = placemark;
+ parameters.placemark = placemark;
mark = new VisiblePlacemark(placemark, \
m_styleBuilder->createStyle(parameters)); m_visiblePlacemarks.insert( placemark, \
mark );
diff --git a/src/lib/marble/StyleBuilder.cpp b/src/lib/marble/StyleBuilder.cpp
index d9d54a8..7e29b47 100644
--- a/src/lib/marble/StyleBuilder.cpp
+++ b/src/lib/marble/StyleBuilder.cpp
@@ -499,10 +499,6 @@ void StyleBuilder::Private::initializeDefaultStyles()
= GeoDataStyle::Ptr(new GeoDataStyle( MarbleDirs::path( \
"bitmaps/unmanned_hard_landing.png" ),
QFont( defaultFamily, defaultSize, 50, false ), defaultLabelColor ));
- m_defaultStyle[GeoDataFeature::Folder]
- = GeoDataStyle::Ptr(new GeoDataStyle( MarbleDirs::path( "bitmaps/folder.png" \
),
- QFont( defaultFamily, defaultSize, 50, false ), defaultLabelColor ));
-
m_defaultStyle[GeoDataFeature::Bookmark]
= createPOIStyle(QFont( defaultFamily, defaultSize, 50, false ),
\
MarbleDirs::path("svg/bookmark.svg"), defaultLabelColor ); @@ -1193,22 +1189,22 @@ \
void StyleBuilder::setDefaultLabelColor( const QColor& color )
GeoDataStyle::ConstPtr StyleBuilder::createStyle(const StyleParameters ¶meters) \
const {
- if (!parameters.feature) {
+ if (!parameters.placemark) {
Q_ASSERT(false && "Must not pass a null feature to \
StyleBuilder::createStyle"); return GeoDataStyle::Ptr();
}
- if (parameters.feature->customStyle()) {
- return parameters.feature->customStyle();
+ if (parameters.placemark->customStyle()) {
+ return parameters.placemark->customStyle();
}
- auto const visualCategory = parameters.feature->visualCategory();
+ auto const visualCategory = parameters.placemark->visualCategory();
GeoDataStyle::ConstPtr style = presetStyle(visualCategory);
- if (parameters.feature->nodeType() != GeoDataTypes::GeoDataPlacemarkType) {
+ if (parameters.placemark->nodeType() != GeoDataTypes::GeoDataPlacemarkType) {
return style;
}
- GeoDataPlacemark const * placemark = static_cast<GeoDataPlacemark const \
*>(parameters.feature); + GeoDataPlacemark const * placemark = \
static_cast<GeoDataPlacemark const *>(parameters.placemark); OsmPlacemarkData const \
& osmData = placemark->osmData();
if (placemark->geometry()->nodeType() == GeoDataTypes::GeoDataPointType) {
if (visualCategory == GeoDataFeature::NaturalTree) {
@@ -1644,7 +1640,6 @@ QString \
StyleBuilder::visualCategoryName(GeoDataFeature::GeoDataVisualCategory \
c
visualCategoryNames[GeoDataFeature::RoboticRover] = "RoboticRover";
visualCategoryNames[GeoDataFeature::UnmannedSoftLandingSite] = \
"UnmannedSoftLandingSite";
visualCategoryNames[GeoDataFeature::UnmannedHardLandingSite] = \
"UnmannedHardLandingSite";
- visualCategoryNames[GeoDataFeature::Folder] = "Folder";
visualCategoryNames[GeoDataFeature::Bookmark] = "Bookmark";
visualCategoryNames[GeoDataFeature::NaturalWater] = "NaturalWater";
visualCategoryNames[GeoDataFeature::NaturalReef] = "NaturalReef";
@@ -2055,8 +2050,8 @@ GeoDataFeature::GeoDataVisualCategory \
StyleBuilder::determineVisualCategory(cons return GeoDataFeature::None;
}
-StyleParameters::StyleParameters(const GeoDataFeature *feature_, int tileLevel_) :
- feature(feature_),
+StyleParameters::StyleParameters(const GeoDataPlacemark *placemark_, int tileLevel_) \
: + placemark(placemark_),
tileLevel(tileLevel_)
{
// nothing to do
diff --git a/src/lib/marble/StyleBuilder.h b/src/lib/marble/StyleBuilder.h
index e4f262b..6acd2ad 100644
--- a/src/lib/marble/StyleBuilder.h
+++ b/src/lib/marble/StyleBuilder.h
@@ -29,9 +29,9 @@ class OsmPlacemarkData;
class MARBLE_EXPORT StyleParameters
{
public:
- explicit StyleParameters(const GeoDataFeature* feature=nullptr, int \
tileLevel=0); + explicit StyleParameters(const GeoDataPlacemark *placemark_ = \
nullptr, int tileLevel = 0);
- const GeoDataFeature* feature;
+ const GeoDataPlacemark *placemark;
int tileLevel;
};
diff --git a/src/lib/marble/geodata/data/GeoDataFeature.cpp \
b/src/lib/marble/geodata/data/GeoDataFeature.cpp index f3d58bb..c71da23 100644
--- a/src/lib/marble/geodata/data/GeoDataFeature.cpp
+++ b/src/lib/marble/geodata/data/GeoDataFeature.cpp
@@ -396,17 +396,6 @@ void GeoDataFeature::setRegion( const GeoDataRegion& region )
d->featureExtendedData().m_region = region;
}
-GeoDataFeature::GeoDataVisualCategory GeoDataFeature::visualCategory() const
-{
- return d->m_visualCategory;
-}
-
-void GeoDataFeature::setVisualCategory( GeoDataFeature::GeoDataVisualCategory index \
)
-{
- detach();
- d->m_visualCategory = index;
-}
-
const QString GeoDataFeature::role() const
{
return d->m_role;
@@ -450,310 +439,6 @@ void GeoDataFeature::setPopularity( qint64 popularity )
d->m_popularity = popularity;
}
-QString GeoDataFeature::categoryName() const
-{
- switch (d->m_visualCategory) {
- case Valley: return GeoDataFeaturePrivate::tr("Valley");
- case OtherTerrain: return GeoDataFeaturePrivate::tr("Terrain");
- case Crater: return GeoDataFeaturePrivate::tr("Crater");
- case Mare: return GeoDataFeaturePrivate::tr("Sea");
- case MannedLandingSite: return GeoDataFeaturePrivate::tr("Manned Landing Site");
- case RoboticRover: return GeoDataFeaturePrivate::tr("Robotic Rover");
- case UnmannedSoftLandingSite: return GeoDataFeaturePrivate::tr("Unmanned Soft \
Landing Site");
- case UnmannedHardLandingSite: return GeoDataFeaturePrivate::tr("Unmanned Hard \
Landing Site");
- case Mons: return GeoDataFeaturePrivate::tr("Mountain");
- case SmallCity: return GeoDataFeaturePrivate::tr("City");
- case SmallCountyCapital: return GeoDataFeaturePrivate::tr("County Capital");
- case SmallStateCapital: return GeoDataFeaturePrivate::tr("State Capital");
- case SmallNationCapital: return GeoDataFeaturePrivate::tr("Nation Capital");
- case MediumCity: return GeoDataFeaturePrivate::tr("City");
- case MediumCountyCapital: return GeoDataFeaturePrivate::tr("County Capital");
- case MediumStateCapital: return GeoDataFeaturePrivate::tr("State Capital");
- case MediumNationCapital: return GeoDataFeaturePrivate::tr("Nation Capital");
- case BigCity: return GeoDataFeaturePrivate::tr("City");
- case BigCountyCapital: return GeoDataFeaturePrivate::tr("County Capital");
- case BigStateCapital: return GeoDataFeaturePrivate::tr("State Capital");
- case BigNationCapital: return GeoDataFeaturePrivate::tr("Nation Capital");
- case LargeCity: return GeoDataFeaturePrivate::tr("City");
- case LargeCountyCapital: return GeoDataFeaturePrivate::tr("County Capital");
- case LargeStateCapital: return GeoDataFeaturePrivate::tr("State Capital");
- case LargeNationCapital: return GeoDataFeaturePrivate::tr("Nation Capital");
- case Nation: return GeoDataFeaturePrivate::tr("Nation");
- case Mountain: return GeoDataFeaturePrivate::tr("Mountain");
- case Volcano: return GeoDataFeaturePrivate::tr("Volcano");
- case Continent: return GeoDataFeaturePrivate::tr("Continent");
- case Ocean: return GeoDataFeaturePrivate::tr("Ocean");
- case GeographicPole: return GeoDataFeaturePrivate::tr("Geographic Pole");
- case MagneticPole: return GeoDataFeaturePrivate::tr("Magnetic Pole");
- case ShipWreck: return GeoDataFeaturePrivate::tr("Ship Wreck");
- case AirPort: return GeoDataFeaturePrivate::tr("Air Port");
- case Observatory: return GeoDataFeaturePrivate::tr("Observatory");
- case MilitaryDangerArea: return GeoDataFeaturePrivate::tr("Military Danger \
Area");
- case OsmSite: return GeoDataFeaturePrivate::tr("OSM Site");
- case Coordinate: return GeoDataFeaturePrivate::tr("Coordinate");
- case Folder: return GeoDataFeaturePrivate::tr("Folder");
- case Bookmark: return GeoDataFeaturePrivate::tr("Bookmark");
- case Satellite: return GeoDataFeaturePrivate::tr("Satellite");
-
- // OpenStreetMap categories
- case PlaceCity: return GeoDataFeaturePrivate::tr("City");
- case PlaceCityCapital: return GeoDataFeaturePrivate::tr("City Capital");
- case PlaceSuburb: return GeoDataFeaturePrivate::tr("Suburb");
- case PlaceHamlet: return GeoDataFeaturePrivate::tr("Hamlet");
- case PlaceLocality: return GeoDataFeaturePrivate::tr("Locality");
- case PlaceTown: return GeoDataFeaturePrivate::tr("Town");
- case PlaceTownCapital: return GeoDataFeaturePrivate::tr("Town Capital");
- case PlaceVillage: return GeoDataFeaturePrivate::tr("Village");
- case PlaceVillageCapital: return GeoDataFeaturePrivate::tr("Village Capital");
- case NaturalWater: return GeoDataFeaturePrivate::tr("Water");
- case NaturalReef: return GeoDataFeaturePrivate::tr("Reef");
- case NaturalWood: return GeoDataFeaturePrivate::tr("Wood");
- case NaturalBeach: return GeoDataFeaturePrivate::tr("Beach");
- case NaturalWetland: return GeoDataFeaturePrivate::tr("Wetland");
- case NaturalGlacier: return GeoDataFeaturePrivate::tr("Glacier");
- case NaturalIceShelf: return GeoDataFeaturePrivate::tr("Ice Shelf");
- case NaturalScrub: return GeoDataFeaturePrivate::tr("Scrub");
- case NaturalCliff: return GeoDataFeaturePrivate::tr("Cliff");
- case NaturalHeath: return GeoDataFeaturePrivate::tr("Heath");
- case HighwayTrafficSignals: return GeoDataFeaturePrivate::tr("Traffic Signals");
- case HighwaySteps: return GeoDataFeaturePrivate::tr("Steps");
- case HighwayUnknown: return GeoDataFeaturePrivate::tr("Unknown Road");
- case HighwayPath: return GeoDataFeaturePrivate::tr("Path");
- case HighwayFootway: return GeoDataFeaturePrivate::tr("Footway");
- case HighwayTrack: return GeoDataFeaturePrivate::tr("Track");
- case HighwayPedestrian: return GeoDataFeaturePrivate::tr("Footway");
- case HighwayCycleway: return GeoDataFeaturePrivate::tr("Cycleway");
- case HighwayService: return GeoDataFeaturePrivate::tr("Service Road");
- case HighwayRoad: return GeoDataFeaturePrivate::tr("Road");
- case HighwayResidential: return GeoDataFeaturePrivate::tr("Residential Road");
- case HighwayLivingStreet: return GeoDataFeaturePrivate::tr("Living Street");
- case HighwayUnclassified: return GeoDataFeaturePrivate::tr("Unclassified Road");
- case HighwayTertiaryLink: return GeoDataFeaturePrivate::tr("Tertiary Link \
Road");
- case HighwayTertiary: return GeoDataFeaturePrivate::tr("Tertiary Road");
- case HighwaySecondaryLink: return GeoDataFeaturePrivate::tr("Secondary Link \
Road");
- case HighwaySecondary: return GeoDataFeaturePrivate::tr("Secondary Road");
- case HighwayPrimaryLink: return GeoDataFeaturePrivate::tr("Primary Link Road");
- case HighwayPrimary: return GeoDataFeaturePrivate::tr("Primary Road");
- case HighwayTrunkLink: return GeoDataFeaturePrivate::tr("Trunk Link Road");
- case HighwayTrunk: return GeoDataFeaturePrivate::tr("Trunk Road");
- case HighwayMotorwayLink: return GeoDataFeaturePrivate::tr("Motorway Link \
Road");
- case HighwayMotorway: return GeoDataFeaturePrivate::tr("Motorway");
- case Building: return GeoDataFeaturePrivate::tr("Building");
- case AccomodationCamping: return GeoDataFeaturePrivate::tr("Camping");
- case AccomodationHostel: return GeoDataFeaturePrivate::tr("Hostel");
- case AccomodationHotel: return GeoDataFeaturePrivate::tr("Hotel");
- case AccomodationMotel: return GeoDataFeaturePrivate::tr("Motel");
- case AccomodationYouthHostel: return GeoDataFeaturePrivate::tr("Youth Hostel");
- case AccomodationGuestHouse: return GeoDataFeaturePrivate::tr("Guest House");
- case AmenityLibrary: return GeoDataFeaturePrivate::tr("Library");
- case AmenityKindergarten: return GeoDataFeaturePrivate::tr("Kindergarten");
- case EducationCollege: return GeoDataFeaturePrivate::tr("College");
- case EducationSchool: return GeoDataFeaturePrivate::tr("School");
- case EducationUniversity: return GeoDataFeaturePrivate::tr("University");
- case FoodBar: return GeoDataFeaturePrivate::tr("Bar");
- case FoodBiergarten: return GeoDataFeaturePrivate::tr("Biergarten");
- case FoodCafe: return GeoDataFeaturePrivate::tr("Cafe");
- case FoodFastFood: return GeoDataFeaturePrivate::tr("Fast Food");
- case FoodPub: return GeoDataFeaturePrivate::tr("Pub");
- case FoodRestaurant: return GeoDataFeaturePrivate::tr("Restaurant");
- case HealthDentist: return GeoDataFeaturePrivate::tr("Dentist");
- case HealthDoctors: return GeoDataFeaturePrivate::tr("Doctors");
- case HealthHospital: return GeoDataFeaturePrivate::tr("Hospital");
- case HealthPharmacy: return GeoDataFeaturePrivate::tr("Pharmacy");
- case HealthVeterinary: return GeoDataFeaturePrivate::tr("Veterinary");
- case MoneyAtm: return GeoDataFeaturePrivate::tr("ATM");
- case MoneyBank: return GeoDataFeaturePrivate::tr("Bank");
- case AmenityArchaeologicalSite: return GeoDataFeaturePrivate::tr("Archaeological \
Site");
- case AmenityEmbassy: return GeoDataFeaturePrivate::tr("Embassy");
- case AmenityEmergencyPhone: return GeoDataFeaturePrivate::tr("Emergency Phone");
- case AmenityWaterPark: return GeoDataFeaturePrivate::tr("Water Park");
- case AmenityCommunityCentre: return GeoDataFeaturePrivate::tr("Community \
Centre");
- case AmenityFountain: return GeoDataFeaturePrivate::tr("Fountain");
- case AmenityNightClub: return GeoDataFeaturePrivate::tr("Night Club");
- case AmenityBench: return GeoDataFeaturePrivate::tr("Bench");
- case AmenityCourtHouse: return GeoDataFeaturePrivate::tr("Court House");
- case AmenityFireStation: return GeoDataFeaturePrivate::tr("Fire Station");
- case AmenityHuntingStand: return GeoDataFeaturePrivate::tr("Hunting Stand");
- case AmenityPolice: return GeoDataFeaturePrivate::tr("Police");
- case AmenityPostBox: return GeoDataFeaturePrivate::tr("Post Box");
- case AmenityPostOffice: return GeoDataFeaturePrivate::tr("Post Office");
- case AmenityPrison: return GeoDataFeaturePrivate::tr("Prison");
- case AmenityRecycling: return GeoDataFeaturePrivate::tr("Recycling");
- case AmenityShelter: return GeoDataFeaturePrivate::tr("Shelter");
- case AmenityTelephone: return GeoDataFeaturePrivate::tr("Telephone");
- case AmenityToilets: return GeoDataFeaturePrivate::tr("Toilets");
- case AmenityTownHall: return GeoDataFeaturePrivate::tr("Town Hall");
- case AmenityWasteBasket: return GeoDataFeaturePrivate::tr("Waste Basket");
- case AmenityDrinkingWater: return GeoDataFeaturePrivate::tr("Drinking Water");
- case AmenityGraveyard: return GeoDataFeaturePrivate::tr("Graveyard");
- case BarrierCityWall: return GeoDataFeaturePrivate::tr("City Wall");
- case BarrierGate: return GeoDataFeaturePrivate::tr("Gate");
- case BarrierLiftGate: return GeoDataFeaturePrivate::tr("Lift Gate");
- case BarrierWall: return GeoDataFeaturePrivate::tr("Wall");
- case NaturalPeak: return GeoDataFeaturePrivate::tr("Peak");
- case NaturalTree: return GeoDataFeaturePrivate::tr("Tree");
- case ShopBeverages: return GeoDataFeaturePrivate::tr("Beverages");
- case ShopHifi: return GeoDataFeaturePrivate::tr("Hifi");
- case ShopSupermarket: return GeoDataFeaturePrivate::tr("Supermarket");
- case ShopAlcohol: return GeoDataFeaturePrivate::tr("Alcohol");
- case ShopBakery: return GeoDataFeaturePrivate::tr("Bakery");
- case ShopButcher: return GeoDataFeaturePrivate::tr("Butcher");
- case ShopConfectionery: return GeoDataFeaturePrivate::tr("Confectionery");
- case ShopConvenience: return GeoDataFeaturePrivate::tr("Convenience Shop");
- case ShopGreengrocer: return GeoDataFeaturePrivate::tr("Greengrocer");
- case ShopSeafood: return GeoDataFeaturePrivate::tr("Seafood");
- case ShopDepartmentStore: return GeoDataFeaturePrivate::tr("Department Store");
- case ShopKiosk: return GeoDataFeaturePrivate::tr("Kiosk");
- case ShopBag: return GeoDataFeaturePrivate::tr("Bag");
- case ShopClothes: return GeoDataFeaturePrivate::tr("Clothes");
- case ShopFashion: return GeoDataFeaturePrivate::tr("Fashion");
- case ShopJewelry: return GeoDataFeaturePrivate::tr("Jewelry");
- case ShopShoes: return GeoDataFeaturePrivate::tr("Shoes");
- case ShopVarietyStore: return GeoDataFeaturePrivate::tr("Variety Store");
- case ShopBeauty: return GeoDataFeaturePrivate::tr("Beauty");
- case ShopChemist: return GeoDataFeaturePrivate::tr("Chemist");
- case ShopCosmetics: return GeoDataFeaturePrivate::tr("Cosmetics");
- case ShopHairdresser: return GeoDataFeaturePrivate::tr("Hairdresser");
- case ShopOptician: return GeoDataFeaturePrivate::tr("Optician");
- case ShopPerfumery: return GeoDataFeaturePrivate::tr("Perfumery");
- case ShopDoitYourself: return GeoDataFeaturePrivate::tr("Doit Yourself");
- case ShopFlorist: return GeoDataFeaturePrivate::tr("Florist");
- case ShopHardware: return GeoDataFeaturePrivate::tr("Hardware");
- case ShopFurniture: return GeoDataFeaturePrivate::tr("Furniture");
- case ShopElectronics: return GeoDataFeaturePrivate::tr("Electronics");
- case ShopMobilePhone: return GeoDataFeaturePrivate::tr("Mobile Phone");
- case ShopBicycle: return GeoDataFeaturePrivate::tr("Bicycle");
- case ShopCar: return GeoDataFeaturePrivate::tr("Car");
- case ShopCarRepair: return GeoDataFeaturePrivate::tr("Car Repair");
- case ShopCarParts: return GeoDataFeaturePrivate::tr("Car Parts");
- case ShopMotorcycle: return GeoDataFeaturePrivate::tr("Motorcycle");
- case ShopOutdoor: return GeoDataFeaturePrivate::tr("Outdoor");
- case ShopMusicalInstrument: return GeoDataFeaturePrivate::tr("Musical \
Instrument");
- case ShopPhoto: return GeoDataFeaturePrivate::tr("Photo");
- case ShopBook: return GeoDataFeaturePrivate::tr("Book");
- case ShopGift: return GeoDataFeaturePrivate::tr("Gift");
- case ShopStationery: return GeoDataFeaturePrivate::tr("Stationery");
- case ShopLaundry: return GeoDataFeaturePrivate::tr("Laundry");
- case ShopPet: return GeoDataFeaturePrivate::tr("Pet");
- case ShopToys: return GeoDataFeaturePrivate::tr("Toys");
- case ShopTravelAgency: return GeoDataFeaturePrivate::tr("Travel Agency");
- case Shop: return GeoDataFeaturePrivate::tr("Shop");
- case ManmadeBridge: return GeoDataFeaturePrivate::tr("Bridge");
- case ManmadeLighthouse: return GeoDataFeaturePrivate::tr("Lighthouse");
- case ManmadePier: return GeoDataFeaturePrivate::tr("Pier");
- case ManmadeWaterTower: return GeoDataFeaturePrivate::tr("Water Tower");
- case ManmadeWindMill: return GeoDataFeaturePrivate::tr("Wind Mill");
- case TouristAttraction: return GeoDataFeaturePrivate::tr("Tourist Attraction");
- case TouristCastle: return GeoDataFeaturePrivate::tr("Castle");
- case TouristCinema: return GeoDataFeaturePrivate::tr("Cinema");
- case TouristInformation: return GeoDataFeaturePrivate::tr("Information");
- case TouristMonument: return GeoDataFeaturePrivate::tr("Monument");
- case TouristMuseum: return GeoDataFeaturePrivate::tr("Museum");
- case TouristRuin: return GeoDataFeaturePrivate::tr("Ruin");
- case TouristTheatre: return GeoDataFeaturePrivate::tr("Theatre");
- case TouristThemePark: return GeoDataFeaturePrivate::tr("Theme Park");
- case TouristViewPoint: return GeoDataFeaturePrivate::tr("View Point");
- case TouristZoo: return GeoDataFeaturePrivate::tr("Zoo");
- case TouristAlpineHut: return GeoDataFeaturePrivate::tr("Alpine Hut");
- case TransportAerodrome: return GeoDataFeaturePrivate::tr("Aerodrome");
- case TransportHelipad: return GeoDataFeaturePrivate::tr("Helipad");
- case TransportAirportGate: return GeoDataFeaturePrivate::tr("Airport Gate");
- case TransportAirportRunway: return GeoDataFeaturePrivate::tr("Airport Runway");
- case TransportAirportApron: return GeoDataFeaturePrivate::tr("Airport Apron");
- case TransportAirportTaxiway: return GeoDataFeaturePrivate::tr("Airport \
Taxiway");
- case TransportAirportTerminal: return GeoDataFeaturePrivate::tr("Airport \
Terminal");
- case TransportBusStation: return GeoDataFeaturePrivate::tr("Bus Station");
- case TransportBusStop: return GeoDataFeaturePrivate::tr("Bus Stop");
- case TransportCarShare: return GeoDataFeaturePrivate::tr("Car Sharing");
- case TransportFuel: return GeoDataFeaturePrivate::tr("Gas Station");
- case TransportParking: return GeoDataFeaturePrivate::tr("Parking");
- case TransportParkingSpace: return GeoDataFeaturePrivate::tr("Parking Space");
- case TransportPlatform: return GeoDataFeaturePrivate::tr("Platform");
- case TransportRentalBicycle: return GeoDataFeaturePrivate::tr("Rental Bicycle");
- case TransportRentalCar: return GeoDataFeaturePrivate::tr("Rental Car");
- case TransportTaxiRank: return GeoDataFeaturePrivate::tr("Taxi Rank");
- case TransportTrainStation: return GeoDataFeaturePrivate::tr("Train Station");
- case TransportTramStop: return GeoDataFeaturePrivate::tr("Tram Stop");
- case TransportBicycleParking: return GeoDataFeaturePrivate::tr("Bicycle \
Parking");
- case TransportMotorcycleParking: return GeoDataFeaturePrivate::tr("Motorcycle \
Parking");
- case TransportSubwayEntrance: return GeoDataFeaturePrivate::tr("Subway \
Entrance");
- case ReligionPlaceOfWorship: return GeoDataFeaturePrivate::tr("Place Of \
Worship");
- case ReligionBahai: return GeoDataFeaturePrivate::tr("Bahai");
- case ReligionBuddhist: return GeoDataFeaturePrivate::tr("Buddhist");
- case ReligionChristian: return GeoDataFeaturePrivate::tr("Christian");
- case ReligionMuslim: return GeoDataFeaturePrivate::tr("Muslim");
- case ReligionHindu: return GeoDataFeaturePrivate::tr("Hindu");
- case ReligionJain: return GeoDataFeaturePrivate::tr("Jain");
- case ReligionJewish: return GeoDataFeaturePrivate::tr("Jewish");
- case ReligionShinto: return GeoDataFeaturePrivate::tr("Shinto");
- case ReligionSikh: return GeoDataFeaturePrivate::tr("Sikh");
- case LeisureGolfCourse: return GeoDataFeaturePrivate::tr("Golf Course");
- case LeisureMarina: return GeoDataFeaturePrivate::tr("Marina");
- case LeisurePark: return GeoDataFeaturePrivate::tr("Park");
- case LeisurePlayground: return GeoDataFeaturePrivate::tr("Playground");
- case LeisurePitch: return GeoDataFeaturePrivate::tr("Pitch");
- case LeisureSportsCentre: return GeoDataFeaturePrivate::tr("Sports Centre");
- case LeisureStadium: return GeoDataFeaturePrivate::tr("Stadium");
- case LeisureTrack: return GeoDataFeaturePrivate::tr("Track");
- case LeisureSwimmingPool: return GeoDataFeaturePrivate::tr("Swimming Pool");
- case LanduseAllotments: return GeoDataFeaturePrivate::tr("Allotments");
- case LanduseBasin: return GeoDataFeaturePrivate::tr("Basin");
- case LanduseCemetery: return GeoDataFeaturePrivate::tr("Cemetery");
- case LanduseCommercial: return GeoDataFeaturePrivate::tr("Commercial");
- case LanduseConstruction: return GeoDataFeaturePrivate::tr("Construction");
- case LanduseFarmland: return GeoDataFeaturePrivate::tr("Farmland");
- case LanduseFarmyard: return GeoDataFeaturePrivate::tr("Farmyard");
- case LanduseGarages: return GeoDataFeaturePrivate::tr("Garages");
- case LanduseGrass: return GeoDataFeaturePrivate::tr("Grass");
- case LanduseIndustrial: return GeoDataFeaturePrivate::tr("Industrial");
- case LanduseLandfill: return GeoDataFeaturePrivate::tr("Landfill");
- case LanduseMeadow: return GeoDataFeaturePrivate::tr("Meadow");
- case LanduseMilitary: return GeoDataFeaturePrivate::tr("Military");
- case LanduseQuarry: return GeoDataFeaturePrivate::tr("Quarry");
- case LanduseRailway: return GeoDataFeaturePrivate::tr("Railway");
- case LanduseReservoir: return GeoDataFeaturePrivate::tr("Reservoir");
- case LanduseResidential: return GeoDataFeaturePrivate::tr("Residential");
- case LanduseRetail: return GeoDataFeaturePrivate::tr("Retail");
- case LanduseOrchard: return GeoDataFeaturePrivate::tr("Orchard");
- case LanduseVineyard: return GeoDataFeaturePrivate::tr("Vineyard");
- case RailwayRail: return GeoDataFeaturePrivate::tr("Rail");
- case RailwayNarrowGauge: return GeoDataFeaturePrivate::tr("Narrow Gauge");
- case RailwayTram: return GeoDataFeaturePrivate::tr("Tram");
- case RailwayLightRail: return GeoDataFeaturePrivate::tr("Light Rail");
- case RailwayAbandoned: return GeoDataFeaturePrivate::tr("Abandoned Railway");
- case RailwaySubway: return GeoDataFeaturePrivate::tr("Subway");
- case RailwayPreserved: return GeoDataFeaturePrivate::tr("Preserved Railway");
- case RailwayMiniature: return GeoDataFeaturePrivate::tr("Miniature Railway");
- case RailwayConstruction: return GeoDataFeaturePrivate::tr("Railway \
Construction");
- case RailwayMonorail: return GeoDataFeaturePrivate::tr("Monorail");
- case RailwayFunicular: return GeoDataFeaturePrivate::tr("Funicular Railway");
- case PowerTower: return GeoDataFeaturePrivate::tr("Power Tower");
- case AdminLevel1: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 1)");
- case AdminLevel2: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 2)");
- case AdminLevel3: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 3)");
- case AdminLevel4: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 4)");
- case AdminLevel5: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 5)");
- case AdminLevel6: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 6)");
- case AdminLevel7: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 7)");
- case AdminLevel8: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 8)");
- case AdminLevel9: return GeoDataFeaturePrivate::tr("Admin Boundary (Level 9)");
- case AdminLevel10: return GeoDataFeaturePrivate::tr("Admin Boundary (Level \
10)");
- case AdminLevel11: return GeoDataFeaturePrivate::tr("Admin Boundary (Level \
11)");
- case BoundaryMaritime: return GeoDataFeaturePrivate::tr("Boundary (Maritime)");
- case Landmass: return GeoDataFeaturePrivate::tr("Land Mass");
- case UrbanArea: return GeoDataFeaturePrivate::tr("Urban Area");
- case InternationalDateLine: return GeoDataFeaturePrivate::tr("International Date \
Line");
- case Bathymetry: return GeoDataFeaturePrivate::tr("Bathymetry");
-
- case Default:
- case Unknown:
- case None:
- case LastIndex: return QString();
- }
-
- return QString();
-}
-
void GeoDataFeature::detach()
{
if(d->ref.load() == 1) {
diff --git a/src/lib/marble/geodata/data/GeoDataFeature.h \
b/src/lib/marble/geodata/data/GeoDataFeature.h index 02b7047..46ce728 100644
--- a/src/lib/marble/geodata/data/GeoDataFeature.h
+++ b/src/lib/marble/geodata/data/GeoDataFeature.h
@@ -129,7 +129,6 @@ class GEODATA_EXPORT GeoDataFeature : public GeoDataObject
UnmannedSoftLandingSite, // u
UnmannedHardLandingSite, // i
- Folder,
Bookmark,
Satellite,
@@ -583,16 +582,6 @@ class GEODATA_EXPORT GeoDataFeature : public GeoDataObject
void setRegion( const GeoDataRegion& region );
/**
- * Return the symbol index of the placemark.
- */
- GeoDataVisualCategory visualCategory() const;
- /**
- * Sets the symbol @p index of the placemark.
- * @param category the new category to be used.
- */
- void setVisualCategory( GeoDataVisualCategory category );
-
- /**
* Return the role of the placemark.
*
* FIXME: describe roles here!
@@ -640,11 +629,6 @@ class GEODATA_EXPORT GeoDataFeature : public GeoDataObject
*/
void setStyleMap( const GeoDataStyleMap* map );
- /**
- * @since 0.26.0
- */
- QString categoryName() const;
-
/// Serialize the contents of the feature to @p stream.
virtual void pack( QDataStream& stream ) const;
/// Unserialize the contents of the feature from @p stream.
diff --git a/src/lib/marble/geodata/data/GeoDataFeature_p.h \
b/src/lib/marble/geodata/data/GeoDataFeature_p.h index 5df69f4..86649c6 100644
--- a/src/lib/marble/geodata/data/GeoDataFeature_p.h
+++ b/src/lib/marble/geodata/data/GeoDataFeature_p.h
@@ -137,7 +137,6 @@ public:
class GeoDataFeaturePrivate
{
- Q_DECLARE_TR_FUNCTIONS(GeoDataFeature)
public:
GeoDataFeaturePrivate() :
m_name(),
@@ -145,7 +144,6 @@ class GeoDataFeaturePrivate
m_popularity( 0 ),
m_zoomLevel( 1 ),
m_visible( true ),
- m_visualCategory( GeoDataFeature::Default ),
m_role(" "),
m_style( 0 ),
m_styleMap( 0 ),
@@ -161,7 +159,6 @@ class GeoDataFeaturePrivate
m_popularity( other.m_popularity ),
m_zoomLevel( other.m_zoomLevel ),
m_visible( other.m_visible ),
- m_visualCategory( other.m_visualCategory ),
m_role( other.m_role ),
m_style( other.m_style ), //FIXME: both style and stylemap \
need to be reworked internally!!!! m_styleMap( other.m_styleMap ),
@@ -184,7 +181,6 @@ class GeoDataFeaturePrivate
m_role = other.m_role;
m_style = other.m_style;
m_styleMap = other.m_styleMap;
- m_visualCategory = other.m_visualCategory;
m_extendedData = other.m_extendedData;
delete m_featureExtendedData;
m_featureExtendedData = nullptr;
@@ -230,7 +226,6 @@ class GeoDataFeaturePrivate
int m_zoomLevel; // Zoom Level of the feature
bool m_visible; // True if this feature should be shown.
- GeoDataFeature::GeoDataVisualCategory m_visualCategory; // the visual category
QString m_role;
diff --git a/src/lib/marble/geodata/data/GeoDataFolder.cpp \
b/src/lib/marble/geodata/data/GeoDataFolder.cpp index bc1acb7..c7ccdc4 100644
--- a/src/lib/marble/geodata/data/GeoDataFolder.cpp
+++ b/src/lib/marble/geodata/data/GeoDataFolder.cpp
@@ -53,7 +53,6 @@ class GeoDataFolderPrivate : public GeoDataContainerPrivate
GeoDataFolder::GeoDataFolder()
: GeoDataContainer( new GeoDataFolderPrivate )
{
- setVisualCategory( GeoDataFeature::Folder );
}
GeoDataFolder::GeoDataFolder( const GeoDataFolder& other )
diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp \
b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp index 9b92661..cad8297 100644
--- a/src/lib/marble/geodata/data/GeoDataPlacemark.cpp
+++ b/src/lib/marble/geodata/data/GeoDataPlacemark.cpp
@@ -166,6 +166,17 @@ bool GeoDataPlacemark::operator!=( const GeoDataPlacemark& other \
) const return !this->operator==( other );
}
+GeoDataFeature::GeoDataVisualCategory GeoDataPlacemark::visualCategory() const
+{
+ return p()->m_visualCategory;
+}
+
+void GeoDataPlacemark::setVisualCategory(GeoDataFeature::GeoDataVisualCategory \
index) +{
+ detach();
+ p()->m_visualCategory = index;
+}
+
GeoDataPlacemarkPrivate* GeoDataPlacemark::p()
{
return static_cast<GeoDataPlacemarkPrivate*>(d);
@@ -333,7 +344,308 @@ QString GeoDataPlacemark::displayName() const
return name();
}
+QString GeoDataPlacemark::categoryName() const
+{
+ switch (p()->m_visualCategory) {
+ case Valley: return GeoDataPlacemarkPrivate::tr("Valley");
+ case OtherTerrain: return GeoDataPlacemarkPrivate::tr("Terrain");
+ case Crater: return GeoDataPlacemarkPrivate::tr("Crater");
+ case Mare: return GeoDataPlacemarkPrivate::tr("Sea");
+ case MannedLandingSite: return GeoDataPlacemarkPrivate::tr("Manned Landing \
Site"); + case RoboticRover: return GeoDataPlacemarkPrivate::tr("Robotic Rover");
+ case UnmannedSoftLandingSite: return GeoDataPlacemarkPrivate::tr("Unmanned Soft \
Landing Site"); + case UnmannedHardLandingSite: return \
GeoDataPlacemarkPrivate::tr("Unmanned Hard Landing Site"); + case Mons: return \
GeoDataPlacemarkPrivate::tr("Mountain"); + case SmallCity: return \
GeoDataPlacemarkPrivate::tr("City"); + case SmallCountyCapital: return \
GeoDataPlacemarkPrivate::tr("County Capital"); + case SmallStateCapital: return \
GeoDataPlacemarkPrivate::tr("State Capital"); + case SmallNationCapital: return \
GeoDataPlacemarkPrivate::tr("Nation Capital"); + case MediumCity: return \
GeoDataPlacemarkPrivate::tr("City"); + case MediumCountyCapital: return \
GeoDataPlacemarkPrivate::tr("County Capital"); + case MediumStateCapital: return \
GeoDataPlacemarkPrivate::tr("State Capital"); + case MediumNationCapital: return \
GeoDataPlacemarkPrivate::tr("Nation Capital"); + case BigCity: return \
GeoDataPlacemarkPrivate::tr("City"); + case BigCountyCapital: return \
GeoDataPlacemarkPrivate::tr("County Capital"); + case BigStateCapital: return \
GeoDataPlacemarkPrivate::tr("State Capital"); + case BigNationCapital: return \
GeoDataPlacemarkPrivate::tr("Nation Capital"); + case LargeCity: return \
GeoDataPlacemarkPrivate::tr("City"); + case LargeCountyCapital: return \
GeoDataPlacemarkPrivate::tr("County Capital"); + case LargeStateCapital: return \
GeoDataPlacemarkPrivate::tr("State Capital"); + case LargeNationCapital: return \
GeoDataPlacemarkPrivate::tr("Nation Capital"); + case Nation: return \
GeoDataPlacemarkPrivate::tr("Nation"); + case Mountain: return \
GeoDataPlacemarkPrivate::tr("Mountain"); + case Volcano: return \
GeoDataPlacemarkPrivate::tr("Volcano"); + case Continent: return \
GeoDataPlacemarkPrivate::tr("Continent"); + case Ocean: return \
GeoDataPlacemarkPrivate::tr("Ocean"); + case GeographicPole: return \
GeoDataPlacemarkPrivate::tr("Geographic Pole"); + case MagneticPole: return \
GeoDataPlacemarkPrivate::tr("Magnetic Pole"); + case ShipWreck: return \
GeoDataPlacemarkPrivate::tr("Ship Wreck"); + case AirPort: return \
GeoDataPlacemarkPrivate::tr("Air Port"); + case Observatory: return \
GeoDataPlacemarkPrivate::tr("Observatory"); + case MilitaryDangerArea: return \
GeoDataPlacemarkPrivate::tr("Military Danger Area"); + case OsmSite: return \
GeoDataPlacemarkPrivate::tr("OSM Site"); + case Coordinate: return \
GeoDataPlacemarkPrivate::tr("Coordinate"); + case Bookmark: return \
GeoDataPlacemarkPrivate::tr("Bookmark"); + case Satellite: return \
GeoDataPlacemarkPrivate::tr("Satellite"); +
+ // OpenStreetMap categories
+ case PlaceCity: return GeoDataPlacemarkPrivate::tr("City");
+ case PlaceCityCapital: return GeoDataPlacemarkPrivate::tr("City Capital");
+ case PlaceSuburb: return GeoDataPlacemarkPrivate::tr("Suburb");
+ case PlaceHamlet: return GeoDataPlacemarkPrivate::tr("Hamlet");
+ case PlaceLocality: return GeoDataPlacemarkPrivate::tr("Locality");
+ case PlaceTown: return GeoDataPlacemarkPrivate::tr("Town");
+ case PlaceTownCapital: return GeoDataPlacemarkPrivate::tr("Town Capital");
+ case PlaceVillage: return GeoDataPlacemarkPrivate::tr("Village");
+ case PlaceVillageCapital: return GeoDataPlacemarkPrivate::tr("Village Capital");
+ case NaturalWater: return GeoDataPlacemarkPrivate::tr("Water");
+ case NaturalReef: return GeoDataPlacemarkPrivate::tr("Reef");
+ case NaturalWood: return GeoDataPlacemarkPrivate::tr("Wood");
+ case NaturalBeach: return GeoDataPlacemarkPrivate::tr("Beach");
+ case NaturalWetland: return GeoDataPlacemarkPrivate::tr("Wetland");
+ case NaturalGlacier: return GeoDataPlacemarkPrivate::tr("Glacier");
+ case NaturalIceShelf: return GeoDataPlacemarkPrivate::tr("Ice Shelf");
+ case NaturalScrub: return GeoDataPlacemarkPrivate::tr("Scrub");
+ case NaturalCliff: return GeoDataPlacemarkPrivate::tr("Cliff");
+ case NaturalHeath: return GeoDataPlacemarkPrivate::tr("Heath");
+ case HighwayTrafficSignals: return GeoDataPlacemarkPrivate::tr("Traffic \
Signals"); + case HighwaySteps: return GeoDataPlacemarkPrivate::tr("Steps");
+ case HighwayUnknown: return GeoDataPlacemarkPrivate::tr("Unknown Road");
+ case HighwayPath: return GeoDataPlacemarkPrivate::tr("Path");
+ case HighwayFootway: return GeoDataPlacemarkPrivate::tr("Footway");
+ case HighwayTrack: return GeoDataPlacemarkPrivate::tr("Track");
+ case HighwayPedestrian: return GeoDataPlacemarkPrivate::tr("Footway");
+ case HighwayCycleway: return GeoDataPlacemarkPrivate::tr("Cycleway");
+ case HighwayService: return GeoDataPlacemarkPrivate::tr("Service Road");
+ case HighwayRoad: return GeoDataPlacemarkPrivate::tr("Road");
+ case HighwayResidential: return GeoDataPlacemarkPrivate::tr("Residential Road");
+ case HighwayLivingStreet: return GeoDataPlacemarkPrivate::tr("Living Street");
+ case HighwayUnclassified: return GeoDataPlacemarkPrivate::tr("Unclassified \
Road"); + case HighwayTertiaryLink: return GeoDataPlacemarkPrivate::tr("Tertiary \
Link Road"); + case HighwayTertiary: return GeoDataPlacemarkPrivate::tr("Tertiary \
Road"); + case HighwaySecondaryLink: return GeoDataPlacemarkPrivate::tr("Secondary \
Link Road"); + case HighwaySecondary: return \
GeoDataPlacemarkPrivate::tr("Secondary Road"); + case HighwayPrimaryLink: return \
GeoDataPlacemarkPrivate::tr("Primary Link Road"); + case HighwayPrimary: return \
GeoDataPlacemarkPrivate::tr("Primary Road"); + case HighwayTrunkLink: return \
GeoDataPlacemarkPrivate::tr("Trunk Link Road"); + case HighwayTrunk: return \
GeoDataPlacemarkPrivate::tr("Trunk Road"); + case HighwayMotorwayLink: return \
GeoDataPlacemarkPrivate::tr("Motorway Link Road"); + case HighwayMotorway: return \
GeoDataPlacemarkPrivate::tr("Motorway"); + case Building: return \
GeoDataPlacemarkPrivate::tr("Building"); + case AccomodationCamping: return \
GeoDataPlacemarkPrivate::tr("Camping"); + case AccomodationHostel: return \
GeoDataPlacemarkPrivate::tr("Hostel"); + case AccomodationHotel: return \
GeoDataPlacemarkPrivate::tr("Hotel"); + case AccomodationMotel: return \
GeoDataPlacemarkPrivate::tr("Motel"); + case AccomodationYouthHostel: return \
GeoDataPlacemarkPrivate::tr("Youth Hostel"); + case AccomodationGuestHouse: return \
GeoDataPlacemarkPrivate::tr("Guest House"); + case AmenityLibrary: return \
GeoDataPlacemarkPrivate::tr("Library"); + case AmenityKindergarten: return \
GeoDataPlacemarkPrivate::tr("Kindergarten"); + case EducationCollege: return \
GeoDataPlacemarkPrivate::tr("College"); + case EducationSchool: return \
GeoDataPlacemarkPrivate::tr("School"); + case EducationUniversity: return \
GeoDataPlacemarkPrivate::tr("University"); + case FoodBar: return \
GeoDataPlacemarkPrivate::tr("Bar"); + case FoodBiergarten: return \
GeoDataPlacemarkPrivate::tr("Biergarten"); + case FoodCafe: return \
GeoDataPlacemarkPrivate::tr("Cafe"); + case FoodFastFood: return \
GeoDataPlacemarkPrivate::tr("Fast Food"); + case FoodPub: return \
GeoDataPlacemarkPrivate::tr("Pub"); + case FoodRestaurant: return \
GeoDataPlacemarkPrivate::tr("Restaurant"); + case HealthDentist: return \
GeoDataPlacemarkPrivate::tr("Dentist"); + case HealthDoctors: return \
GeoDataPlacemarkPrivate::tr("Doctors"); + case HealthHospital: return \
GeoDataPlacemarkPrivate::tr("Hospital"); + case HealthPharmacy: return \
GeoDataPlacemarkPrivate::tr("Pharmacy"); + case HealthVeterinary: return \
GeoDataPlacemarkPrivate::tr("Veterinary"); + case MoneyAtm: return \
GeoDataPlacemarkPrivate::tr("ATM"); + case MoneyBank: return \
GeoDataPlacemarkPrivate::tr("Bank"); + case AmenityArchaeologicalSite: return \
GeoDataPlacemarkPrivate::tr("Archaeological Site"); + case AmenityEmbassy: return \
GeoDataPlacemarkPrivate::tr("Embassy"); + case AmenityEmergencyPhone: return \
GeoDataPlacemarkPrivate::tr("Emergency Phone"); + case AmenityWaterPark: return \
GeoDataPlacemarkPrivate::tr("Water Park"); + case AmenityCommunityCentre: return \
GeoDataPlacemarkPrivate::tr("Community Centre"); + case AmenityFountain: return \
GeoDataPlacemarkPrivate::tr("Fountain"); + case AmenityNightClub: return \
GeoDataPlacemarkPrivate::tr("Night Club"); + case AmenityBench: return \
GeoDataPlacemarkPrivate::tr("Bench"); + case AmenityCourtHouse: return \
GeoDataPlacemarkPrivate::tr("Court House"); + case AmenityFireStation: return \
GeoDataPlacemarkPrivate::tr("Fire Station"); + case AmenityHuntingStand: return \
GeoDataPlacemarkPrivate::tr("Hunting Stand"); + case AmenityPolice: return \
GeoDataPlacemarkPrivate::tr("Police"); + case AmenityPostBox: return \
GeoDataPlacemarkPrivate::tr("Post Box"); + case AmenityPostOffice: return \
GeoDataPlacemarkPrivate::tr("Post Office"); + case AmenityPrison: return \
GeoDataPlacemarkPrivate::tr("Prison"); + case AmenityRecycling: return \
GeoDataPlacemarkPrivate::tr("Recycling"); + case AmenityShelter: return \
GeoDataPlacemarkPrivate::tr("Shelter"); + case AmenityTelephone: return \
GeoDataPlacemarkPrivate::tr("Telephone"); + case AmenityToilets: return \
GeoDataPlacemarkPrivate::tr("Toilets"); + case AmenityTownHall: return \
GeoDataPlacemarkPrivate::tr("Town Hall"); + case AmenityWasteBasket: return \
GeoDataPlacemarkPrivate::tr("Waste Basket"); + case AmenityDrinkingWater: return \
GeoDataPlacemarkPrivate::tr("Drinking Water"); + case AmenityGraveyard: return \
GeoDataPlacemarkPrivate::tr("Graveyard"); + case BarrierCityWall: return \
GeoDataPlacemarkPrivate::tr("City Wall"); + case BarrierGate: return \
GeoDataPlacemarkPrivate::tr("Gate"); + case BarrierLiftGate: return \
GeoDataPlacemarkPrivate::tr("Lift Gate"); + case BarrierWall: return \
GeoDataPlacemarkPrivate::tr("Wall"); + case NaturalPeak: return \
GeoDataPlacemarkPrivate::tr("Peak"); + case NaturalTree: return \
GeoDataPlacemarkPrivate::tr("Tree"); + case ShopBeverages: return \
GeoDataPlacemarkPrivate::tr("Beverages"); + case ShopHifi: return \
GeoDataPlacemarkPrivate::tr("Hifi"); + case ShopSupermarket: return \
GeoDataPlacemarkPrivate::tr("Supermarket"); + case ShopAlcohol: return \
GeoDataPlacemarkPrivate::tr("Alcohol"); + case ShopBakery: return \
GeoDataPlacemarkPrivate::tr("Bakery"); + case ShopButcher: return \
GeoDataPlacemarkPrivate::tr("Butcher"); + case ShopConfectionery: return \
GeoDataPlacemarkPrivate::tr("Confectionery"); + case ShopConvenience: return \
GeoDataPlacemarkPrivate::tr("Convenience Shop"); + case ShopGreengrocer: return \
GeoDataPlacemarkPrivate::tr("Greengrocer"); + case ShopSeafood: return \
GeoDataPlacemarkPrivate::tr("Seafood"); + case ShopDepartmentStore: return \
GeoDataPlacemarkPrivate::tr("Department Store"); + case ShopKiosk: return \
GeoDataPlacemarkPrivate::tr("Kiosk"); + case ShopBag: return \
GeoDataPlacemarkPrivate::tr("Bag"); + case ShopClothes: return \
GeoDataPlacemarkPrivate::tr("Clothes"); + case ShopFashion: return \
GeoDataPlacemarkPrivate::tr("Fashion"); + case ShopJewelry: return \
GeoDataPlacemarkPrivate::tr("Jewelry"); + case ShopShoes: return \
GeoDataPlacemarkPrivate::tr("Shoes"); + case ShopVarietyStore: return \
GeoDataPlacemarkPrivate::tr("Variety Store"); + case ShopBeauty: return \
GeoDataPlacemarkPrivate::tr("Beauty"); + case ShopChemist: return \
GeoDataPlacemarkPrivate::tr("Chemist"); + case ShopCosmetics: return \
GeoDataPlacemarkPrivate::tr("Cosmetics"); + case ShopHairdresser: return \
GeoDataPlacemarkPrivate::tr("Hairdresser"); + case ShopOptician: return \
GeoDataPlacemarkPrivate::tr("Optician"); + case ShopPerfumery: return \
GeoDataPlacemarkPrivate::tr("Perfumery"); + case ShopDoitYourself: return \
GeoDataPlacemarkPrivate::tr("Doit Yourself"); + case ShopFlorist: return \
GeoDataPlacemarkPrivate::tr("Florist"); + case ShopHardware: return \
GeoDataPlacemarkPrivate::tr("Hardware"); + case ShopFurniture: return \
GeoDataPlacemarkPrivate::tr("Furniture"); + case ShopElectronics: return \
GeoDataPlacemarkPrivate::tr("Electronics"); + case ShopMobilePhone: return \
GeoDataPlacemarkPrivate::tr("Mobile Phone"); + case ShopBicycle: return \
GeoDataPlacemarkPrivate::tr("Bicycle"); + case ShopCar: return \
GeoDataPlacemarkPrivate::tr("Car"); + case ShopCarRepair: return \
GeoDataPlacemarkPrivate::tr("Car Repair"); + case ShopCarParts: return \
GeoDataPlacemarkPrivate::tr("Car Parts"); + case ShopMotorcycle: return \
GeoDataPlacemarkPrivate::tr("Motorcycle"); + case ShopOutdoor: return \
GeoDataPlacemarkPrivate::tr("Outdoor"); + case ShopMusicalInstrument: return \
GeoDataPlacemarkPrivate::tr("Musical Instrument"); + case ShopPhoto: return \
GeoDataPlacemarkPrivate::tr("Photo"); + case ShopBook: return \
GeoDataPlacemarkPrivate::tr("Book"); + case ShopGift: return \
GeoDataPlacemarkPrivate::tr("Gift"); + case ShopStationery: return \
GeoDataPlacemarkPrivate::tr("Stationery"); + case ShopLaundry: return \
GeoDataPlacemarkPrivate::tr("Laundry"); + case ShopPet: return \
GeoDataPlacemarkPrivate::tr("Pet"); + case ShopToys: return \
GeoDataPlacemarkPrivate::tr("Toys"); + case ShopTravelAgency: return \
GeoDataPlacemarkPrivate::tr("Travel Agency"); + case Shop: return \
GeoDataPlacemarkPrivate::tr("Shop"); + case ManmadeBridge: return \
GeoDataPlacemarkPrivate::tr("Bridge"); + case ManmadeLighthouse: return \
GeoDataPlacemarkPrivate::tr("Lighthouse"); + case ManmadePier: return \
GeoDataPlacemarkPrivate::tr("Pier"); + case ManmadeWaterTower: return \
GeoDataPlacemarkPrivate::tr("Water Tower"); + case ManmadeWindMill: return \
GeoDataPlacemarkPrivate::tr("Wind Mill"); + case TouristAttraction: return \
GeoDataPlacemarkPrivate::tr("Tourist Attraction"); + case TouristCastle: return \
GeoDataPlacemarkPrivate::tr("Castle"); + case TouristCinema: return \
GeoDataPlacemarkPrivate::tr("Cinema"); + case TouristInformation: return \
GeoDataPlacemarkPrivate::tr("Information"); + case TouristMonument: return \
GeoDataPlacemarkPrivate::tr("Monument"); + case TouristMuseum: return \
GeoDataPlacemarkPrivate::tr("Museum"); + case TouristRuin: return \
GeoDataPlacemarkPrivate::tr("Ruin"); + case TouristTheatre: return \
GeoDataPlacemarkPrivate::tr("Theatre"); + case TouristThemePark: return \
GeoDataPlacemarkPrivate::tr("Theme Park"); + case TouristViewPoint: return \
GeoDataPlacemarkPrivate::tr("View Point"); + case TouristZoo: return \
GeoDataPlacemarkPrivate::tr("Zoo"); + case TouristAlpineHut: return \
GeoDataPlacemarkPrivate::tr("Alpine Hut"); + case TransportAerodrome: return \
GeoDataPlacemarkPrivate::tr("Aerodrome"); + case TransportHelipad: return \
GeoDataPlacemarkPrivate::tr("Helipad"); + case TransportAirportGate: return \
GeoDataPlacemarkPrivate::tr("Airport Gate"); + case TransportAirportRunway: return \
GeoDataPlacemarkPrivate::tr("Airport Runway"); + case TransportAirportApron: \
return GeoDataPlacemarkPrivate::tr("Airport Apron"); + case \
TransportAirportTaxiway: return GeoDataPlacemarkPrivate::tr("Airport Taxiway"); + \
case TransportAirportTerminal: return GeoDataPlacemarkPrivate::tr("Airport \
Terminal"); + case TransportBusStation: return GeoDataPlacemarkPrivate::tr("Bus \
Station"); + case TransportBusStop: return GeoDataPlacemarkPrivate::tr("Bus \
Stop"); + case TransportCarShare: return GeoDataPlacemarkPrivate::tr("Car \
Sharing"); + case TransportFuel: return GeoDataPlacemarkPrivate::tr("Gas \
Station"); + case TransportParking: return GeoDataPlacemarkPrivate::tr("Parking");
+ case TransportParkingSpace: return GeoDataPlacemarkPrivate::tr("Parking Space");
+ case TransportPlatform: return GeoDataPlacemarkPrivate::tr("Platform");
+ case TransportRentalBicycle: return GeoDataPlacemarkPrivate::tr("Rental \
Bicycle"); + case TransportRentalCar: return GeoDataPlacemarkPrivate::tr("Rental \
Car"); + case TransportTaxiRank: return GeoDataPlacemarkPrivate::tr("Taxi Rank");
+ case TransportTrainStation: return GeoDataPlacemarkPrivate::tr("Train Station");
+ case TransportTramStop: return GeoDataPlacemarkPrivate::tr("Tram Stop");
+ case TransportBicycleParking: return GeoDataPlacemarkPrivate::tr("Bicycle \
Parking"); + case TransportMotorcycleParking: return \
GeoDataPlacemarkPrivate::tr("Motorcycle Parking"); + case TransportSubwayEntrance: \
return GeoDataPlacemarkPrivate::tr("Subway Entrance"); + case \
ReligionPlaceOfWorship: return GeoDataPlacemarkPrivate::tr("Place Of Worship"); + \
case ReligionBahai: return GeoDataPlacemarkPrivate::tr("Bahai"); + case \
ReligionBuddhist: return GeoDataPlacemarkPrivate::tr("Buddhist"); + case \
ReligionChristian: return GeoDataPlacemarkPrivate::tr("Christian"); + case \
ReligionMuslim: return GeoDataPlacemarkPrivate::tr("Muslim"); + case \
ReligionHindu: return GeoDataPlacemarkPrivate::tr("Hindu"); + case ReligionJain: \
return GeoDataPlacemarkPrivate::tr("Jain"); + case ReligionJewish: return \
GeoDataPlacemarkPrivate::tr("Jewish"); + case ReligionShinto: return \
GeoDataPlacemarkPrivate::tr("Shinto"); + case ReligionSikh: return \
GeoDataPlacemarkPrivate::tr("Sikh"); + case LeisureGolfCourse: return \
GeoDataPlacemarkPrivate::tr("Golf Course"); + case LeisureMarina: return \
GeoDataPlacemarkPrivate::tr("Marina"); + case LeisurePark: return \
GeoDataPlacemarkPrivate::tr("Park"); + case LeisurePlayground: return \
GeoDataPlacemarkPrivate::tr("Playground"); + case LeisurePitch: return \
GeoDataPlacemarkPrivate::tr("Pitch"); + case LeisureSportsCentre: return \
GeoDataPlacemarkPrivate::tr("Sports Centre"); + case LeisureStadium: return \
GeoDataPlacemarkPrivate::tr("Stadium"); + case LeisureTrack: return \
GeoDataPlacemarkPrivate::tr("Track"); + case LeisureSwimmingPool: return \
GeoDataPlacemarkPrivate::tr("Swimming Pool"); + case LanduseAllotments: return \
GeoDataPlacemarkPrivate::tr("Allotments"); + case LanduseBasin: return \
GeoDataPlacemarkPrivate::tr("Basin"); + case LanduseCemetery: return \
GeoDataPlacemarkPrivate::tr("Cemetery"); + case LanduseCommercial: return \
GeoDataPlacemarkPrivate::tr("Commercial"); + case LanduseConstruction: return \
GeoDataPlacemarkPrivate::tr("Construction"); + case LanduseFarmland: return \
GeoDataPlacemarkPrivate::tr("Farmland"); + case LanduseFarmyard: return \
GeoDataPlacemarkPrivate::tr("Farmyard"); + case LanduseGarages: return \
GeoDataPlacemarkPrivate::tr("Garages"); + case LanduseGrass: return \
GeoDataPlacemarkPrivate::tr("Grass"); + case LanduseIndustrial: return \
GeoDataPlacemarkPrivate::tr("Industrial"); + case LanduseLandfill: return \
GeoDataPlacemarkPrivate::tr("Landfill"); + case LanduseMeadow: return \
GeoDataPlacemarkPrivate::tr("Meadow"); + case LanduseMilitary: return \
GeoDataPlacemarkPrivate::tr("Military"); + case LanduseQuarry: return \
GeoDataPlacemarkPrivate::tr("Quarry"); + case LanduseRailway: return \
GeoDataPlacemarkPrivate::tr("Railway"); + case LanduseReservoir: return \
GeoDataPlacemarkPrivate::tr("Reservoir"); + case LanduseResidential: return \
GeoDataPlacemarkPrivate::tr("Residential"); + case LanduseRetail: return \
GeoDataPlacemarkPrivate::tr("Retail"); + case LanduseOrchard: return \
GeoDataPlacemarkPrivate::tr("Orchard"); + case LanduseVineyard: return \
GeoDataPlacemarkPrivate::tr("Vineyard"); + case RailwayRail: return \
GeoDataPlacemarkPrivate::tr("Rail"); + case RailwayNarrowGauge: return \
GeoDataPlacemarkPrivate::tr("Narrow Gauge"); + case RailwayTram: return \
GeoDataPlacemarkPrivate::tr("Tram"); + case RailwayLightRail: return \
GeoDataPlacemarkPrivate::tr("Light Rail"); + case RailwayAbandoned: return \
GeoDataPlacemarkPrivate::tr("Abandoned Railway"); + case RailwaySubway: return \
GeoDataPlacemarkPrivate::tr("Subway"); + case RailwayPreserved: return \
GeoDataPlacemarkPrivate::tr("Preserved Railway"); + case RailwayMiniature: return \
GeoDataPlacemarkPrivate::tr("Miniature Railway"); + case RailwayConstruction: \
return GeoDataPlacemarkPrivate::tr("Railway Construction"); + case \
RailwayMonorail: return GeoDataPlacemarkPrivate::tr("Monorail"); + case \
RailwayFunicular: return GeoDataPlacemarkPrivate::tr("Funicular Railway"); + case \
PowerTower: return GeoDataPlacemarkPrivate::tr("Power Tower"); + case AdminLevel1: \
return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 1)"); + case \
AdminLevel2: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 2)"); + \
case AdminLevel3: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 3)"); + \
case AdminLevel4: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 4)"); + \
case AdminLevel5: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 5)"); + \
case AdminLevel6: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 6)"); + \
case AdminLevel7: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 7)"); + \
case AdminLevel8: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 8)"); + \
case AdminLevel9: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 9)"); + \
case AdminLevel10: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 10)"); + \
case AdminLevel11: return GeoDataPlacemarkPrivate::tr("Admin Boundary (Level 11)"); + \
case BoundaryMaritime: return GeoDataPlacemarkPrivate::tr("Boundary (Maritime)"); + \
case Landmass: return GeoDataPlacemarkPrivate::tr("Land Mass"); + case UrbanArea: \
return GeoDataPlacemarkPrivate::tr("Urban Area"); + case InternationalDateLine: \
return GeoDataPlacemarkPrivate::tr("International Date Line"); + case Bathymetry: \
return GeoDataPlacemarkPrivate::tr("Bathymetry"); +
+ case Default:
+ case Unknown:
+ case None:
+ case LastIndex: return QString();
+ }
+ return QString();
+}
qreal GeoDataPlacemark::area() const
{
diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark.h \
b/src/lib/marble/geodata/data/GeoDataPlacemark.h index 541465b..9c9c72d 100644
--- a/src/lib/marble/geodata/data/GeoDataPlacemark.h
+++ b/src/lib/marble/geodata/data/GeoDataPlacemark.h
@@ -82,6 +82,17 @@ class GEODATA_EXPORT GeoDataPlacemark: public GeoDataFeature
bool operator!=( const GeoDataPlacemark& other ) const;
/**
+ * Return the symbol index of the placemark.
+ */
+ GeoDataVisualCategory visualCategory() const;
+
+ /**
+ * Sets the symbol @p index of the placemark.
+ * @param category the new category to be used.
+ */
+ void setVisualCategory(GeoDataVisualCategory category);
+
+ /**
* Return the coordinates of the placemark at time @p dateTime as a \
GeoDataCoordinates
*
* The @p dateTime parameter should be used if the placemark geometry() is a
@@ -105,9 +116,14 @@ class GEODATA_EXPORT GeoDataPlacemark: public GeoDataFeature
const GeoDataGeometry* geometry() const;
/**
- * @brief displays the name of a place in the locale language of the user
- */
- QString displayName() const;
+ * @brief displays the name of a place in the locale language of the user
+ */
+ QString displayName() const;
+
+ /**
+ * @since 0.26.0
+ */
+ QString categoryName() const;
/**
* Return the coordinates of the placemark as @p longitude,
diff --git a/src/lib/marble/geodata/data/GeoDataPlacemark_p.h \
b/src/lib/marble/geodata/data/GeoDataPlacemark_p.h index 13b5cb7..8ac0189 100644
--- a/src/lib/marble/geodata/data/GeoDataPlacemark_p.h
+++ b/src/lib/marble/geodata/data/GeoDataPlacemark_p.h
@@ -58,11 +58,14 @@ public:
class GeoDataPlacemarkPrivate : public GeoDataFeaturePrivate
{
+ Q_DECLARE_TR_FUNCTIONS(GeoDataPlacemark)
+
public:
- GeoDataPlacemarkPrivate()
- : m_geometry( new GeoDataPoint ),
+ GeoDataPlacemarkPrivate() :
+ m_geometry(new GeoDataPoint),
m_population( -1 ),
- m_placemarkExtendedData(nullptr)
+ m_placemarkExtendedData(nullptr),
+ m_visualCategory(GeoDataFeature::Default)
{
}
@@ -80,6 +83,7 @@ class GeoDataPlacemarkPrivate : public GeoDataFeaturePrivate
GeoDataFeaturePrivate::operator=( other );
m_population = other.m_population;
+ m_visualCategory = other.m_visualCategory;
GeoDataGeometry * geometry = 0;
if ( other.m_geometry ) {
@@ -159,6 +163,7 @@ class GeoDataPlacemarkPrivate : public GeoDataFeaturePrivate
GeoDataGeometry *m_geometry; // any GeoDataGeometry entry like locations
qint64 m_population; // population in number of inhabitants
GeoDataPlacemarkExtendedData *m_placemarkExtendedData;
+ GeoDataFeature::GeoDataVisualCategory m_visualCategory; // the visual category
static const OsmPlacemarkData s_nullOsmPlacemarkData;
static const GeoDataPlacemarkExtendedData s_nullPlacemarkExtendedData;
diff --git a/src/lib/marble/graphicsview/GeoGraphicsItem.cpp \
b/src/lib/marble/graphicsview/GeoGraphicsItem.cpp index 7c7c81c..bcc45b5 100644
--- a/src/lib/marble/graphicsview/GeoGraphicsItem.cpp
+++ b/src/lib/marble/graphicsview/GeoGraphicsItem.cpp
@@ -12,6 +12,7 @@
#include "GeoGraphicsItem.h"
#include "GeoGraphicsItem_p.h"
+#include "GeoDataTypes.h"
#include "GeoDataPlacemark.h"
// Qt
@@ -86,8 +87,13 @@ GeoDataStyle::ConstPtr GeoGraphicsItem::style() const
}
if (!d->m_style) {
- auto const styling = StyleParameters(d->m_feature, \
d->m_renderContext.tileLevel());
- d->m_style = d->m_styleBuilder->createStyle(styling);
+ if (d->m_feature->nodeType() == GeoDataTypes::GeoDataPlacemarkType) {
+ const GeoDataPlacemark *placemark = static_cast<const \
GeoDataPlacemark*>(d->m_feature); + auto const styling = \
StyleParameters(placemark, d->m_renderContext.tileLevel()); + d->m_style = \
d->m_styleBuilder->createStyle(styling); + } else {
+ d->m_style = d->m_feature->style();
+ }
}
return d->m_style;
diff --git a/src/lib/marble/layers/GeometryLayer.cpp \
b/src/lib/marble/layers/GeometryLayer.cpp index 4acf5f3..62d8b8f 100644
--- a/src/lib/marble/layers/GeometryLayer.cpp
+++ b/src/lib/marble/layers/GeometryLayer.cpp
@@ -441,8 +441,13 @@ QVector<const GeoDataFeature *> \
GeometryLayer::whichBuildingAt(const QPoint &cur
const int maxZoom = qMin<int>(qMax<int>(qLn(viewport->radius()*4/256)/qLn(2.0), \
1), d->m_styleBuilder->maximumZoomLevel());
foreach ( GeoGraphicsItem * item, d->m_scene.items( \
viewport->viewLatLonAltBox(), maxZoom ) ) {
- if (item->feature()->visualCategory() == GeoDataFeature::Building && \
item->feature()->nodeType() == GeoDataTypes::GeoDataPlacemarkType ) { + if \
(item->feature()->nodeType() == GeoDataTypes::GeoDataPlacemarkType) {
const GeoDataPlacemark* placemark = static_cast<const \
GeoDataPlacemark*>(item->feature()); +
+ if (placemark->visualCategory() != GeoDataFeature::Building) {
+ continue;
+ }
+
if (placemark->geometry()->nodeType() == \
GeoDataTypes::GeoDataPolygonType) {
const GeoDataPolygon *polygon = static_cast<const \
GeoDataPolygon*>(placemark->geometry()); if (polygon->contains(coordinates)) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic