• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.12
  • kdeedu
  • marble
  • src
  • lib
  • marble
  • geodata
  • data
GeoDataFeature.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2007 Murad Tagirov <tmurad@gmail.com>
9 // Copyright 2009 Patrick Spendrin <ps_ml@gmx.de>
10 //
11 
12 
13 #include "GeoDataFeature.h"
14 #include "GeoDataFeature_p.h"
15 
16 #include <QDataStream>
17 #include <QSize>
18 #include <QPixmap>
19 
20 #include "MarbleDirs.h"
21 #include "MarbleDebug.h"
22 
23 #include "GeoDataStyle.h"
24 #include "GeoDataStyleMap.h"
25 
26 #include "GeoDataContainer.h"
27 #include "GeoDataDocument.h"
28 #include "GeoDataFolder.h"
29 #include "GeoDataPlacemark.h"
30 #include "GeoDataRegion.h"
31 
32 
33 namespace Marble
34 {
35 QFont GeoDataFeaturePrivate::s_defaultFont = QFont("Sans Serif");
36 QColor GeoDataFeaturePrivate::s_defaultLabelColor = QColor( Qt::black );
37 
38 bool GeoDataFeaturePrivate::s_defaultStyleInitialized = false;
39 GeoDataStyle* GeoDataFeaturePrivate::s_defaultStyle[GeoDataFeature::LastIndex];
40 QMap<QString, GeoDataFeature::GeoDataVisualCategory> GeoDataFeaturePrivate::s_visualCategories;
41 
42 GeoDataFeature::GeoDataFeature()
43  :d( new GeoDataFeaturePrivate() )
44 {
45  d->ref.ref();
46 }
47 
48 GeoDataFeature::GeoDataFeature( const GeoDataFeature& other )
49  : GeoDataObject( other ),
50  d( other.d )
51 {
52  d->ref.ref();
53 }
54 
55 GeoDataFeature::GeoDataFeature( const QString& name )
56  : d( new GeoDataFeaturePrivate() )
57 {
58  d->ref.ref();
59  d->m_name = name;
60 }
61 
62 GeoDataFeature::GeoDataFeature( GeoDataFeaturePrivate *priv )
63  : d( priv )
64 {
65  d->ref.ref();
66 }
67 
68 GeoDataFeature::~GeoDataFeature()
69 {
70  if (!d->ref.deref()) {
71  delete d;
72  }
73 }
74 
75 GeoDataFeaturePrivate* GeoDataFeature::p() const
76 {
77  return static_cast<GeoDataFeaturePrivate*>(d);
78 }
79 
80 GeoDataFeature& GeoDataFeature::operator=( const GeoDataFeature& other )
81 {
82  GeoDataObject::operator=( other );
83 
84  if (!d->ref.deref()) {
85  delete d;
86  }
87 
88  d = other.d;
89  d->ref.ref();
90 
91  return *this;
92 }
93 
94 const char* GeoDataFeature::nodeType() const
95 {
96  return p()->nodeType();
97 }
98 
99 EnumFeatureId GeoDataFeature::featureId() const
100 {
101  return d->featureId();
102 }
103 
104 void GeoDataFeaturePrivate::initializeDefaultStyles()
105 {
106  // We need to do this similar to the way KCmdLineOptions works in
107  // the future: Having a PlacemarkStyleProperty properties[] would
108  // help here greatly.
109 
110  QString defaultFamily = s_defaultFont.family();
111 
112 #ifdef Q_OS_MACX
113  int defaultSize = 10;
114 #else
115  int defaultSize = 8;
116 #endif
117 
118  s_defaultStyle[GeoDataFeature::None]
119  = new GeoDataStyle( QImage(),
120  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
121 
122  s_defaultStyle[GeoDataFeature::Default]
123  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/default_location.png" ) ),
124  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
125 
126  s_defaultStyle[GeoDataFeature::Unknown]
127  = new GeoDataStyle( QImage(),
128  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
129 
130  s_defaultStyle[GeoDataFeature::SmallCity]
131  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_white.png" ) ),
132  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
133 
134  s_defaultStyle[GeoDataFeature::SmallCountyCapital]
135  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_yellow.png" ) ),
136  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
137 
138  s_defaultStyle[GeoDataFeature::SmallStateCapital]
139  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_orange.png" ) ),
140  QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor );
141 
142  s_defaultStyle[GeoDataFeature::SmallNationCapital]
143  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_red.png" ) ),
144  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
145 
146  s_defaultStyle[GeoDataFeature::MediumCity]
147  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_white.png" ) ),
148  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
149 
150  s_defaultStyle[GeoDataFeature::MediumCountyCapital]
151  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_yellow.png" ) ),
152  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
153 
154  s_defaultStyle[GeoDataFeature::MediumStateCapital]
155  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_orange.png" ) ),
156  QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor );
157 
158  s_defaultStyle[GeoDataFeature::MediumNationCapital]
159  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_red.png" ) ),
160  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
161 
162  s_defaultStyle[GeoDataFeature::BigCity]
163  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_white.png" ) ),
164  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
165 
166  s_defaultStyle[GeoDataFeature::BigCountyCapital]
167  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_yellow.png" ) ),
168  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
169 
170  s_defaultStyle[GeoDataFeature::BigStateCapital]
171  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_orange.png" ) ),
172  QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor );
173 
174  s_defaultStyle[GeoDataFeature::BigNationCapital]
175  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_red.png" ) ),
176  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
177 
178  s_defaultStyle[GeoDataFeature::LargeCity]
179  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_white.png" ) ),
180  QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor );
181 
182  s_defaultStyle[GeoDataFeature::LargeCountyCapital]
183  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_yellow.png" ) ),
184  QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor );
185 
186  s_defaultStyle[GeoDataFeature::LargeStateCapital]
187  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_orange.png" ) ),
188  QFont( defaultFamily, defaultSize, 75, true ), s_defaultLabelColor );
189 
190  s_defaultStyle[GeoDataFeature::LargeNationCapital]
191  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_red.png" ) ),
192  QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor );
193 
194  s_defaultStyle[GeoDataFeature::Nation]
195  = new GeoDataStyle( QImage(),
196  QFont( defaultFamily, (int)(defaultSize * 1.2 ), 75, false ), QColor( "#404040" ) );
197  // Align area labels centered
198  s_defaultStyle[GeoDataFeature::Nation]->labelStyle().setAlignment( GeoDataLabelStyle::Center );
199 
200  s_defaultStyle[GeoDataFeature::Mountain]
201  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ),
202  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
203 
204  s_defaultStyle[GeoDataFeature::Volcano]
205  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/volcano_1.png" ) ),
206  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
207 
208  s_defaultStyle[GeoDataFeature::Mons]
209  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ),
210  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
211 
212  s_defaultStyle[GeoDataFeature::Valley]
213  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/valley.png" ) ),
214  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
215 
216  s_defaultStyle[GeoDataFeature::Continent]
217  = new GeoDataStyle( QImage(),
218  QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) );
219  // Align area labels centered
220  s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setAlignment( GeoDataLabelStyle::Center );
221 
222  s_defaultStyle[GeoDataFeature::Ocean]
223  = new GeoDataStyle( QImage(),
224  QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, true ), QColor( "#2c72c7" ) );
225  // Align area labels centered
226  s_defaultStyle[GeoDataFeature::Ocean]->labelStyle().setAlignment( GeoDataLabelStyle::Center );
227 
228  s_defaultStyle[GeoDataFeature::OtherTerrain]
229  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/other.png" ) ),
230  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
231 
232  s_defaultStyle[GeoDataFeature::Crater]
233  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/crater.png" ) ),
234  QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor );
235 
236  s_defaultStyle[GeoDataFeature::Mare]
237  = new GeoDataStyle( QImage(),
238  QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) );
239  // Align area labels centered
240  s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setAlignment( GeoDataLabelStyle::Center );
241 
242  s_defaultStyle[GeoDataFeature::GeographicPole]
243  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_1.png" ) ),
244  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
245 
246  s_defaultStyle[GeoDataFeature::MagneticPole]
247  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_2.png" ) ),
248  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
249 
250  s_defaultStyle[GeoDataFeature::ShipWreck]
251  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/shipwreck.png" ) ),
252  QFont( defaultFamily, (int)(defaultSize * 0.8 ), 50, false ), s_defaultLabelColor );
253 
254  s_defaultStyle[GeoDataFeature::AirPort]
255  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/airport.png" ) ),
256  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
257 
258  s_defaultStyle[GeoDataFeature::Observatory]
259  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/observatory.png" ) ),
260  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
261 
262  s_defaultStyle[GeoDataFeature::Wikipedia]
263  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/wikipedia.png" ) ),
264  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
265 
266  s_defaultStyle[GeoDataFeature::OsmSite]
267  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/osm.png" ) ),
268  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
269 
270  s_defaultStyle[GeoDataFeature::Coordinate]
271  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/coordinate.png" ) ),
272  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
273 
274 
275  s_defaultStyle[GeoDataFeature::MannedLandingSite]
276  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/manned_landing.png" ) ),
277  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
278 
279  s_defaultStyle[GeoDataFeature::RoboticRover]
280  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/robotic_rover.png" ) ),
281  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
282 
283  s_defaultStyle[GeoDataFeature::UnmannedSoftLandingSite]
284  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_soft_landing.png" ) ),
285  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
286 
287  s_defaultStyle[GeoDataFeature::UnmannedHardLandingSite]
288  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_hard_landing.png" ) ),
289  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
290 
291  s_defaultStyle[GeoDataFeature::Folder]
292  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/folder.png" ) ),
293  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
294 
295  s_defaultStyle[GeoDataFeature::Bookmark]
296  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/bookmark.png" ) ),
297  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
298 
299  QFont const osmFont( defaultFamily, defaultSize, 50, false );
300  s_defaultStyle[GeoDataFeature::AccomodationCamping] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_camping.p.16" );
301  s_defaultStyle[GeoDataFeature::AccomodationHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hostel.p.16" );
302  s_defaultStyle[GeoDataFeature::AccomodationHotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hotel2.p.16" );
303  s_defaultStyle[GeoDataFeature::AccomodationMotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_motel.p.16" );
304  s_defaultStyle[GeoDataFeature::AccomodationYouthHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_youth_hostel.p.16" );
305  s_defaultStyle[GeoDataFeature::AmenityLibrary] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "amenity_library.p.16" );
306  s_defaultStyle[GeoDataFeature::EducationCollege] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_college.p.16" );
307  s_defaultStyle[GeoDataFeature::EducationSchool] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_school.p.16" );
308  s_defaultStyle[GeoDataFeature::EducationUniversity] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_university.p.16" );
309  s_defaultStyle[GeoDataFeature::FoodBar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_bar.p.16" );
310  s_defaultStyle[GeoDataFeature::FoodBiergarten] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_biergarten.p.16" );
311  s_defaultStyle[GeoDataFeature::FoodCafe] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_cafe.p.16" );
312  s_defaultStyle[GeoDataFeature::FoodFastFood] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_fastfood2.p.16" );
313  s_defaultStyle[GeoDataFeature::FoodPub] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_pub.p.16" );
314  s_defaultStyle[GeoDataFeature::FoodRestaurant] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_restaurant.p.16" );
315  s_defaultStyle[GeoDataFeature::HealthDoctors] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_doctors2.p.16" );
316  s_defaultStyle[GeoDataFeature::HealthHospital] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_hospital.p.16" );
317  s_defaultStyle[GeoDataFeature::HealthPharmacy] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_pharmacy.p.16" );
318  s_defaultStyle[GeoDataFeature::MoneyBank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "money_bank2.p.16" );
319  s_defaultStyle[GeoDataFeature::ShoppingBeverages] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_alcohol.p.16" );
320  s_defaultStyle[GeoDataFeature::ShoppingHifi] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_hifi.p.16" );
321  s_defaultStyle[GeoDataFeature::ShoppingSupermarket] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_supermarket.p.16" );
322  s_defaultStyle[GeoDataFeature::TouristAttraction] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_attraction.p.16" );
323  s_defaultStyle[GeoDataFeature::TouristCastle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_castle2.p.16" );
324  s_defaultStyle[GeoDataFeature::TouristCinema] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_cinema.p.16" );
325  s_defaultStyle[GeoDataFeature::TouristMonument] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_monument.p.16" );
326  s_defaultStyle[GeoDataFeature::TouristMuseum] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_museum.p.16" );
327  s_defaultStyle[GeoDataFeature::TouristRuin] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_ruin.p.16" );
328  s_defaultStyle[GeoDataFeature::TouristTheatre] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theatre.p.16" );
329  s_defaultStyle[GeoDataFeature::TouristThemePark] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theme_park.p.16" );
330  s_defaultStyle[GeoDataFeature::TouristViewPoint] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_view_point.p.16" );
331  s_defaultStyle[GeoDataFeature::TouristZoo] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_zoo.p.16" );
332  s_defaultStyle[GeoDataFeature::TransportAerodrome] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_aerodrome.p.16" );
333  s_defaultStyle[GeoDataFeature::TransportAirportTerminal] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_airport_terminal.p.16" );
334  s_defaultStyle[GeoDataFeature::TransportBusStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_station.p.16" );
335  s_defaultStyle[GeoDataFeature::TransportBusStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_stop.p.16" );
336  s_defaultStyle[GeoDataFeature::TransportCarShare] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_car_share.p.16" );
337  s_defaultStyle[GeoDataFeature::TransportFuel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_fuel.p.16" );
338  s_defaultStyle[GeoDataFeature::TransportParking] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_parking.p.16", "#F6EEB6", QColor( "#F6EEB6" ).darker() );
339  s_defaultStyle[GeoDataFeature::TransportTrainStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_train_station.p.16" );
340  s_defaultStyle[GeoDataFeature::TransportTramStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_tram_stop.p.16" );
341  s_defaultStyle[GeoDataFeature::TransportRentalBicycle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_bicycle.p.16" );
342  s_defaultStyle[GeoDataFeature::TransportRentalCar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_car.p.16" );
343  s_defaultStyle[GeoDataFeature::TransportTaxiRank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_taxi_rank.p.16" );
344  s_defaultStyle[GeoDataFeature::ReligionPlaceOfWorship] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_unknown3.p.16" );
345  s_defaultStyle[GeoDataFeature::ReligionBahai] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_bahai3.p.16" );
346  s_defaultStyle[GeoDataFeature::ReligionBuddhist] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_buddhist3.p.16" );
347  s_defaultStyle[GeoDataFeature::ReligionChristian] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_christian3.p.16" );
348  s_defaultStyle[GeoDataFeature::ReligionHindu] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_hindu3.p.16" );
349  s_defaultStyle[GeoDataFeature::ReligionJain] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jain3.p.16" );
350  s_defaultStyle[GeoDataFeature::ReligionJewish] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jewish3.p.16" );
351  s_defaultStyle[GeoDataFeature::ReligionShinto] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_shinto3.p.16" );
352  s_defaultStyle[GeoDataFeature::ReligionSikh] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_sikh3.p.16" );
353 
354  s_defaultStyle[GeoDataFeature::HighwaySteps] = GeoDataFeaturePrivate::createStyle( 1, 5, "#F98072", "#F98072", true, true,
355  Qt::SolidPattern, Qt::CustomDashLine, Qt::FlatCap,
356  false, QVector< qreal >() << 0.2 << 0.2 );
357 
358  s_defaultStyle[GeoDataFeature::HighwayUnknown] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#808080" );
359  s_defaultStyle[GeoDataFeature::HighwayPath] = GeoDataFeaturePrivate::createHighwayStyle( "highway_path", "#F98072", 1.0, 2, Qt::DashLine );
360  s_defaultStyle[GeoDataFeature::HighwayTrack] = GeoDataFeaturePrivate::createHighwayStyle( "highway_track", "#986600", 1.0, 3, Qt::DashLine );
361  s_defaultStyle[GeoDataFeature::HighwayPedestrian] = GeoDataFeaturePrivate::createHighwayStyle( "highway_footway", "#F98072", 1.0, 2, Qt::DashLine );
362  s_defaultStyle[GeoDataFeature::HighwayService] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.0, 6 );
363  s_defaultStyle[GeoDataFeature::HighwayRoad] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.5, 9 );
364  s_defaultStyle[GeoDataFeature::HighwayTertiary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 11 );
365  s_defaultStyle[GeoDataFeature::HighwaySecondary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 13 );
366  s_defaultStyle[GeoDataFeature::HighwayPrimary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 3.0, 15 );
367  s_defaultStyle[GeoDataFeature::HighwayTrunk] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 18 );
368  s_defaultStyle[GeoDataFeature::HighwayMotorway] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 20 );
369 
370  s_defaultStyle[GeoDataFeature::HighwayTertiaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 9 );
371  s_defaultStyle[GeoDataFeature::HighwaySecondaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 11 );
372  s_defaultStyle[GeoDataFeature::HighwayPrimaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 2.0, 13 );
373  s_defaultStyle[GeoDataFeature::HighwayTrunkLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 15 );
374  s_defaultStyle[GeoDataFeature::HighwayMotorwayLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 18 );
375 
376  s_defaultStyle[GeoDataFeature::NaturalWater] = GeoDataFeaturePrivate::createStyle( 2, 10, "#B5D0D0", "#B5D0D0",
377  true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false );
378  s_defaultStyle[GeoDataFeature::NaturalWood] = GeoDataFeaturePrivate::createWayStyle( "#8DC46C", "#8DC46C" );
379 
380  s_defaultStyle[GeoDataFeature::LeisurePark] = GeoDataFeaturePrivate::createWayStyle( "#CDF6CA", "#CDF6CA" );
381 
382  s_defaultStyle[GeoDataFeature::LanduseAllotments] = GeoDataFeaturePrivate::createWayStyle( "#E4C6AA", "#E4C6AA" );
383  s_defaultStyle[GeoDataFeature::LanduseBasin] = GeoDataFeaturePrivate::createWayStyle( QColor(0xB5, 0xD0, 0xD0, 0x80 ), QColor( 0xB5, 0xD0, 0xD0 ) );
384  s_defaultStyle[GeoDataFeature::LanduseCemetery] = GeoDataFeaturePrivate::createWayStyle( "#A9C9AE", "#A9C9AE" );
385  s_defaultStyle[GeoDataFeature::LanduseCommercial] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
386  s_defaultStyle[GeoDataFeature::LanduseConstruction] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
387  s_defaultStyle[GeoDataFeature::LanduseFarmland] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
388  s_defaultStyle[GeoDataFeature::LanduseFarmyard] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
389  s_defaultStyle[GeoDataFeature::LanduseGarages] = GeoDataFeaturePrivate::createWayStyle( "#E0DDCD", "#E0DDCD" );
390  s_defaultStyle[GeoDataFeature::LanduseGrass] = GeoDataFeaturePrivate::createWayStyle( "#A8C8A5", "#A8C8A5" );
391  s_defaultStyle[GeoDataFeature::LanduseIndustrial] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" );
392  s_defaultStyle[GeoDataFeature::LanduseLandfill] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
393  s_defaultStyle[GeoDataFeature::LanduseMeadow] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
394  s_defaultStyle[GeoDataFeature::LanduseMilitary] = GeoDataFeaturePrivate::createWayStyle( "#F3D8D2", "#F3D8D2", true, true, Qt::BDiagPattern );
395  s_defaultStyle[GeoDataFeature::LanduseQuarry] = GeoDataFeaturePrivate::createWayStyle( "#C4C2C2", "#C4C2C2" );
396  s_defaultStyle[GeoDataFeature::LanduseRailway] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" );
397  s_defaultStyle[GeoDataFeature::LanduseReservoir] = GeoDataFeaturePrivate::createWayStyle( "#B5D0D0", "#B5D0D0" );
398  s_defaultStyle[GeoDataFeature::LanduseResidential] = GeoDataFeaturePrivate::createWayStyle( "#DCDCDC", "#DCDCDC" );
399  s_defaultStyle[GeoDataFeature::LanduseRetail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
400 
401  s_defaultStyle[GeoDataFeature::RailwayRail] = GeoDataFeaturePrivate::createStyle( 2, 5, "#989898", "#E1E1E1", true, true, Qt::SolidPattern, Qt::DashLine, Qt::FlatCap, true );
402  s_defaultStyle[GeoDataFeature::RailwayTram] = GeoDataFeaturePrivate::createStyle( 1, 4, "#989898", "#989898", true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false );
403  s_defaultStyle[GeoDataFeature::RailwayLightRail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
404  s_defaultStyle[GeoDataFeature::RailwayAbandoned] = GeoDataFeaturePrivate::createStyle( 2, 5, Qt::transparent, "#989898", false, false, Qt::SolidPattern, Qt::DotLine, Qt::FlatCap, false );
405  s_defaultStyle[GeoDataFeature::RailwaySubway] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
406  s_defaultStyle[GeoDataFeature::RailwayPreserved] = GeoDataFeaturePrivate::createStyle( 2, 5, "#E1E1E1", "#989898", true, true, Qt::SolidPattern, Qt::DotLine, Qt::FlatCap, true );
407  s_defaultStyle[GeoDataFeature::RailwayMiniature] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
408  s_defaultStyle[GeoDataFeature::RailwayConstruction] = GeoDataFeaturePrivate::createStyle( 2, 5, "#E1E1E1", "#989898", true, true, Qt::SolidPattern, Qt::DotLine, Qt::FlatCap, true );
409  s_defaultStyle[GeoDataFeature::RailwayMonorail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
410  s_defaultStyle[GeoDataFeature::RailwayFunicular] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false );
411 
412  s_defaultStyle[GeoDataFeature::Building] = GeoDataFeaturePrivate::createStyle( 1, 0, QColor( 0xBE, 0xAD, 0xAD ), QColor( 0xBE, 0xAD, 0xAD ).darker(),
413  true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false );
414 
415  s_defaultStyle[GeoDataFeature::Satellite]
416  = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/satellite.png" ) ),
417  QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor );
418 
419  s_defaultStyleInitialized = true;
420  s_defaultFont = QFont("Sans Serif");
421 
422  QFont tmp;
423 
424 
425  // Fonts for areas ...
426  tmp = s_defaultStyle[GeoDataFeature::Continent]->labelStyle().font();
427  tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 );
428  tmp.setCapitalization( QFont::SmallCaps );
429  tmp.setBold( true );
430  s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setFont( tmp );
431 
432  // Fonts for areas ...
433  tmp = s_defaultStyle[GeoDataFeature::Mare]->labelStyle().font();
434  tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 );
435  tmp.setCapitalization( QFont::SmallCaps );
436  tmp.setBold( true );
437  s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setFont( tmp );
438 
439  // Now we need to underline the capitals ...
440 
441  tmp = s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().font();
442  tmp.setUnderline( true );
443  s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().setFont( tmp );
444 
445  tmp = s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().font();
446  tmp.setUnderline( true );
447  s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().setFont( tmp );
448 
449  tmp = s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().font();
450  tmp.setUnderline( true );
451  s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().setFont( tmp );
452 
453  tmp = s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().font();
454  tmp.setUnderline( true );
455  s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().setFont( tmp );
456 }
457 
458 QFont GeoDataFeature::defaultFont()
459 {
460  return GeoDataFeaturePrivate::s_defaultFont;
461 }
462 
463 void GeoDataFeature::setDefaultFont( const QFont& font )
464 {
465  GeoDataFeaturePrivate::s_defaultFont = font;
466  GeoDataFeaturePrivate::s_defaultStyleInitialized = false;
467 }
468 
469 QColor GeoDataFeature::defaultLabelColor()
470 {
471  return GeoDataFeaturePrivate::s_defaultLabelColor;
472 }
473 
474 void GeoDataFeature::setDefaultLabelColor( const QColor& color )
475 {
476  GeoDataFeaturePrivate::s_defaultLabelColor = color;
477  GeoDataFeaturePrivate::s_defaultStyleInitialized = false;
478 }
479 
480 QString GeoDataFeature::name() const
481 {
482  return d->m_name;
483 }
484 
485 void GeoDataFeature::setName( const QString &value )
486 {
487  detach();
488  d->m_name = value;
489 }
490 
491 QString GeoDataFeature::address() const
492 {
493  return d->m_address;
494 }
495 
496 void GeoDataFeature::setAddress( const QString &value)
497 {
498  detach();
499  d->m_address = value;
500 }
501 
502 QString GeoDataFeature::phoneNumber() const
503 {
504  return d->m_phoneNumber;
505 }
506 
507 void GeoDataFeature::setPhoneNumber( const QString &value)
508 {
509  detach();
510  d->m_phoneNumber = value;
511 }
512 
513 QString GeoDataFeature::description() const
514 {
515  return d->m_description;
516 }
517 
518 void GeoDataFeature::setDescription( const QString &value)
519 {
520  detach();
521  d->m_description = value;
522 }
523 
524 bool GeoDataFeature::descriptionIsCDATA() const
525 {
526  return d->m_descriptionCDATA;
527 }
528 
529 void GeoDataFeature::setDescriptionCDATA( bool cdata )
530 {
531  detach();
532  d->m_descriptionCDATA = cdata;
533 }
534 
535 const GeoDataAbstractView* GeoDataFeature::abstractView() const
536 {
537  return d->m_abstractView;
538 }
539 
540 GeoDataAbstractView *GeoDataFeature::abstractView()
541 {
542  return d->m_abstractView;
543 }
544 
545 void GeoDataFeature::setAbstractView( GeoDataAbstractView *abstractView )
546 {
547  detach();
548  d->m_abstractView = abstractView;
549 }
550 
551 QString GeoDataFeature::styleUrl() const
552 {
553  return d->m_styleUrl;
554 }
555 
556 void GeoDataFeature::setStyleUrl( const QString &value)
557 {
558  detach();
559  d->m_styleUrl = value;
560  QString styleUrl = value;
561  styleUrl.remove('#');
562  GeoDataObject *object = parent();
563  bool found = false;
564  while ( object && !found ) {
565  if( object->nodeType() == GeoDataTypes::GeoDataDocumentType ) {
566  GeoDataDocument *doc = static_cast<GeoDataDocument*> ( object );
567  GeoDataStyleMap &styleMap = doc->styleMap( styleUrl );
568  if( !styleMap.value( QString( "normal" ) ).isEmpty() ) {
569  styleUrl = styleMap.value( QString( "normal" ) );
570  styleUrl.remove('#');
571  }
572  // Not calling setStyle here because we don't want
573  // re-parenting of the style
574  d->m_style = &doc->style( styleUrl );
575  found = true;
576  }
577  object = object->parent();
578  }
579 }
580 
581 bool GeoDataFeature::isVisible() const
582 {
583  return d->m_visible;
584 }
585 
586 void GeoDataFeature::setVisible( bool value )
587 {
588  detach();
589  d->m_visible = value;
590 }
591 
592 bool GeoDataFeature::isGloballyVisible() const
593 {
594  if ( parent() == 0 ) {
595  return d->m_visible;
596  }
597  GeoDataContainer *container = static_cast<GeoDataContainer*>( parent() );
598  return d->m_visible && container->isGloballyVisible();
599 }
600 
601 
602 GeoDataTimeSpan& GeoDataFeature::timeSpan() const
603 {
604  return d->m_timeSpan;
605 }
606 
607 void GeoDataFeature::setTimeSpan( const GeoDataTimeSpan &timeSpan )
608 {
609  detach();
610  d->m_timeSpan = timeSpan;
611 }
612 
613 GeoDataTimeStamp& GeoDataFeature::timeStamp() const
614 {
615  return d->m_timeStamp;
616 }
617 
618 void GeoDataFeature::setTimeStamp( const GeoDataTimeStamp &timeStamp )
619 {
620  detach();
621  d->m_timeStamp = timeStamp;
622 }
623 
624 const GeoDataStyle* GeoDataFeature::style() const
625 {
626  if ( d->m_style != 0 ) {
627  return d->m_style;
628  } else
629  {
630  if ( GeoDataFeaturePrivate::s_defaultStyleInitialized == false )
631  GeoDataFeaturePrivate::initializeDefaultStyles();
632 
633  if ( d->m_visualCategory != None
634  && GeoDataFeaturePrivate::s_defaultStyle[ d->m_visualCategory] )
635  {
636  return GeoDataFeaturePrivate::s_defaultStyle[ d->m_visualCategory ];
637  }
638  else
639  {
640  return GeoDataFeaturePrivate::s_defaultStyle[ GeoDataFeature::Default];
641  }
642  }
643 }
644 
645 void GeoDataFeature::setStyle( GeoDataStyle* style )
646 {
647  detach();
648  if (style)
649  style->setParent( this );
650  d->m_style = style;
651 }
652 
653 GeoDataExtendedData& GeoDataFeature::extendedData() const
654 {
655  return d->m_extendedData;
656 }
657 
658 void GeoDataFeature::setExtendedData( const GeoDataExtendedData& extendedData )
659 {
660  detach();
661  d->m_extendedData = extendedData;
662 }
663 
664 GeoDataRegion& GeoDataFeature::region() const
665 {
666  return d->m_region;
667 }
668 
669 void GeoDataFeature::setRegion( const GeoDataRegion& region )
670 {
671  detach();
672  d->m_region = region;
673 }
674 
675 GeoDataFeature::GeoDataVisualCategory GeoDataFeature::visualCategory() const
676 {
677  return d->m_visualCategory;
678 }
679 
680 void GeoDataFeature::setVisualCategory( GeoDataFeature::GeoDataVisualCategory index )
681 {
682  detach();
683  d->m_visualCategory = index;
684 }
685 
686 const QString GeoDataFeature::role() const
687 {
688  return d->m_role;
689 }
690 
691 void GeoDataFeature::setRole( const QString &role )
692 {
693  detach();
694  d->m_role = role;
695 }
696 
697 const GeoDataStyleMap* GeoDataFeature::styleMap() const
698 {
699  return d->m_styleMap;
700 }
701 
702 void GeoDataFeature::setStyleMap( const GeoDataStyleMap* styleMap )
703 {
704  d->m_styleMap = styleMap;
705 }
706 
707 int GeoDataFeature::zoomLevel() const
708 {
709  return d->m_zoomLevel;
710 }
711 
712 void GeoDataFeature::setZoomLevel( int zoomLevel )
713 {
714  detach();
715  d->m_zoomLevel = zoomLevel;
716 }
717 
718 qint64 GeoDataFeature::popularity() const
719 {
720  return d->m_popularity;
721 }
722 
723 void GeoDataFeature::setPopularity( qint64 popularity )
724 {
725  detach();
726  d->m_popularity = popularity;
727 }
728 
729 void GeoDataFeature::resetDefaultStyles()
730 {
731  GeoDataFeaturePrivate::s_defaultStyleInitialized = false;
732 }
733 
734 void GeoDataFeature::detach()
735 {
736 #if QT_VERSION < 0x050000
737  if(d->ref == 1)
738 #else
739  if(d->ref.load() == 1)
740 #endif
741  return;
742 
743  GeoDataFeaturePrivate* new_d = d->copy();
744 
745  if (!d->ref.deref()) {
746  delete d;
747  }
748 
749  d = new_d;
750 
751  d->ref.ref();
752 }
753 
754 void GeoDataFeature::pack( QDataStream& stream ) const
755 {
756  GeoDataObject::pack( stream );
757 
758  stream << d->m_name;
759  stream << d->m_address;
760  stream << d->m_phoneNumber;
761  stream << d->m_description;
762  stream << d->m_visible;
763 // stream << d->m_visualCategory;
764  stream << d->m_role;
765  stream << d->m_popularity;
766  stream << d->m_zoomLevel;
767 }
768 
769 void GeoDataFeature::unpack( QDataStream& stream )
770 {
771  detach();
772  GeoDataObject::unpack( stream );
773 
774  stream >> d->m_name;
775  stream >> d->m_address;
776  stream >> d->m_phoneNumber;
777  stream >> d->m_description;
778  stream >> d->m_visible;
779 // stream >> (int)d->m_visualCategory;
780  stream >> d->m_role;
781  stream >> d->m_popularity;
782  stream >> d->m_zoomLevel;
783 }
784 
785 GeoDataFeature::GeoDataVisualCategory GeoDataFeature::OsmVisualCategory(const QString &keyValue )
786 {
787  if( GeoDataFeaturePrivate::s_visualCategories.isEmpty() ) {
788  GeoDataFeaturePrivate::initializeOsmVisualCategories();
789  }
790  return GeoDataFeaturePrivate::s_visualCategories.value( keyValue );
791 }
792 
793 void GeoDataFeaturePrivate::initializeOsmVisualCategories()
794 {
795  s_visualCategories["admin_level=1"] = GeoDataFeature::OtherTerrain;
796  s_visualCategories["admin_level=2"] = GeoDataFeature::OtherTerrain;
797  s_visualCategories["admin_level=3"] = GeoDataFeature::OtherTerrain;
798  s_visualCategories["admin_level=4"] = GeoDataFeature::OtherTerrain;
799  s_visualCategories["admin_level=5"] = GeoDataFeature::OtherTerrain;
800  s_visualCategories["admin_level=6"] = GeoDataFeature::OtherTerrain;
801  s_visualCategories["admin_level=7"] = GeoDataFeature::OtherTerrain;
802  s_visualCategories["admin_level=8"] = GeoDataFeature::OtherTerrain;
803 
804  s_visualCategories["amenity=restaurant"] = GeoDataFeature::FoodRestaurant;
805  s_visualCategories["amenity=fast_food"] = GeoDataFeature::FoodFastFood;
806  s_visualCategories["amenity=pub"] = GeoDataFeature::FoodPub;
807  s_visualCategories["amenity=bar"] = GeoDataFeature::FoodBar;
808  s_visualCategories["amenity=cafe"] = GeoDataFeature::FoodCafe;
809  s_visualCategories["amenity=biergarten"] = GeoDataFeature::FoodBiergarten;
810  s_visualCategories["amenity=school"] = GeoDataFeature::EducationSchool;
811  s_visualCategories["amenity=college"] = GeoDataFeature::EducationCollege;
812  s_visualCategories["amenity=library"] = GeoDataFeature::AmenityLibrary;
813  s_visualCategories["amenity=university"] = GeoDataFeature::EducationUniversity;
814  s_visualCategories["amenity=bus_station"] = GeoDataFeature::TransportBusStation;
815  s_visualCategories["amenity=car_sharing"] = GeoDataFeature::TransportCarShare;
816  s_visualCategories["amenity=fuel"] = GeoDataFeature::TransportFuel;
817  s_visualCategories["amenity=parking"] = GeoDataFeature::TransportParking;
818  s_visualCategories["amenity=bank"] = GeoDataFeature::MoneyBank;
819  s_visualCategories["amenity=pharmacy"] = GeoDataFeature::HealthPharmacy;
820  s_visualCategories["amenity=hospital"] = GeoDataFeature::HealthHospital;
821  s_visualCategories["amenity=doctors"] = GeoDataFeature::HealthDoctors;
822  s_visualCategories["amenity=cinema"] = GeoDataFeature::TouristCinema;
823  s_visualCategories["amenity=theatre"] = GeoDataFeature::TouristTheatre;
824  s_visualCategories["amenity=place_of_worship"] = GeoDataFeature::ReligionPlaceOfWorship;
825 
826  //FIXME: alcohol != beverages
827  s_visualCategories["shop=alcohol"] = GeoDataFeature::ShoppingBeverages;
828  s_visualCategories["shop=hifi"] = GeoDataFeature::ShoppingHifi;
829  s_visualCategories["shop=supermarket"] = GeoDataFeature::ShoppingSupermarket;
830 
831  s_visualCategories["religion"] = GeoDataFeature::ReligionPlaceOfWorship;
832  s_visualCategories["religion=bahai"] = GeoDataFeature::ReligionBahai;
833  s_visualCategories["religion=buddhist"] = GeoDataFeature::ReligionBuddhist;
834  s_visualCategories["religion=christian"] = GeoDataFeature::ReligionChristian;
835  s_visualCategories["religion=hindu"] = GeoDataFeature::ReligionHindu;
836  s_visualCategories["religion=jain"] = GeoDataFeature::ReligionJain;
837  s_visualCategories["religion=jewish"] = GeoDataFeature::ReligionJewish;
838  s_visualCategories["religion=shinto"] = GeoDataFeature::ReligionShinto;
839  s_visualCategories["religion=sikh"] = GeoDataFeature::ReligionSikh;
840 
841  s_visualCategories["tourism=attraction"] = GeoDataFeature::TouristAttraction;
842  s_visualCategories["tourism=camp_site"] = GeoDataFeature::AccomodationCamping;
843  s_visualCategories["tourism=hostel"] = GeoDataFeature::AccomodationHostel;
844  s_visualCategories["tourism=hotel"] = GeoDataFeature::AccomodationHotel;
845  s_visualCategories["tourism=motel"] = GeoDataFeature::AccomodationMotel;
846  s_visualCategories["tourism=museum"] = GeoDataFeature::TouristMuseum;
847  s_visualCategories["tourism=theme_park"] = GeoDataFeature::TouristThemePark;
848  s_visualCategories["tourism=viewpoint"] = GeoDataFeature::TouristViewPoint;
849  s_visualCategories["tourism=zoo"] = GeoDataFeature::TouristZoo;
850 
851  s_visualCategories["historic=castle"] = GeoDataFeature::TouristCastle;
852  s_visualCategories["historic=fort"] = GeoDataFeature::TouristCastle;
853  s_visualCategories["historic=monument"] = GeoDataFeature::TouristMonument;
854  s_visualCategories["historic=ruins"] = GeoDataFeature::TouristRuin;
855 
856 
857  s_visualCategories["highway"] = GeoDataFeature::HighwayUnknown;
858  s_visualCategories["highway=steps"] = GeoDataFeature::HighwaySteps;
859  s_visualCategories["highway=footway"] = GeoDataFeature::HighwayPedestrian;
860  s_visualCategories["highway=path"] = GeoDataFeature::HighwayPath;
861  s_visualCategories["highway=track"] = GeoDataFeature::HighwayTrack;
862  s_visualCategories["highway=pedestrian"] = GeoDataFeature::HighwayPedestrian;
863  s_visualCategories["highway=service"] = GeoDataFeature::HighwayService;
864  s_visualCategories["highway=living_street"] = GeoDataFeature::HighwayRoad;
865  s_visualCategories["highway=unclassified"] = GeoDataFeature::HighwayRoad;
866  s_visualCategories["highway=residential"] = GeoDataFeature::HighwayRoad;
867  s_visualCategories["highway=tertiary_link"] = GeoDataFeature::HighwayTertiaryLink;
868  s_visualCategories["highway=tertiary"] = GeoDataFeature::HighwayTertiary;
869  s_visualCategories["highway=secondary_link"] = GeoDataFeature::HighwaySecondaryLink;
870  s_visualCategories["highway=secondary"] = GeoDataFeature::HighwaySecondary;
871  s_visualCategories["highway=primary_link"] = GeoDataFeature::HighwayPrimaryLink;
872  s_visualCategories["highway=primary"] = GeoDataFeature::HighwayPrimary;
873  s_visualCategories["highway=trunk_link"] = GeoDataFeature::HighwayTrunkLink;
874  s_visualCategories["highway=trunk"] = GeoDataFeature::HighwayTrunk;
875  s_visualCategories["highway=motorway_link"] = GeoDataFeature::HighwayMotorwayLink;
876  s_visualCategories["highway=motorway"] = GeoDataFeature::HighwayMotorway;
877  s_visualCategories["highway=bus_stop"] = GeoDataFeature::TransportBusStop;
878 
879 
880  s_visualCategories["natural=water"] = GeoDataFeature::NaturalWater;
881  s_visualCategories["waterway=stream"] = GeoDataFeature::NaturalWater;
882  s_visualCategories["waterway=river"] = GeoDataFeature::NaturalWater;
883  s_visualCategories["waterway=riverbank"] = GeoDataFeature::NaturalWater;
884  s_visualCategories["waterway=canal"] = GeoDataFeature::NaturalWater;
885 
886  s_visualCategories["natural=wood"] = GeoDataFeature::NaturalWood;
887 
888  s_visualCategories["landuse=forest"] = GeoDataFeature::NaturalWood;
889  s_visualCategories["landuse=allotments"] = GeoDataFeature::LanduseAllotments;
890  s_visualCategories["landuse=basin"] = GeoDataFeature::LanduseBasin;
891  s_visualCategories["landuse=brownfield"] = GeoDataFeature::LanduseConstruction;
892  s_visualCategories["landuse=cemetery"] = GeoDataFeature::LanduseCemetery;
893  s_visualCategories["landuse=commercial"] = GeoDataFeature::LanduseCommercial;
894  s_visualCategories["landuse=construction"] = GeoDataFeature::LanduseConstruction;
895  s_visualCategories["landuse=farm"] = GeoDataFeature::LanduseFarmland;
896  s_visualCategories["landuse=farmland"] = GeoDataFeature::LanduseFarmland;
897  s_visualCategories["landuse=farmyard"] = GeoDataFeature::LanduseFarmyard;
898  s_visualCategories["landuse=garages"] = GeoDataFeature::LanduseGarages;
899  s_visualCategories["landuse=greenfield"] = GeoDataFeature::LanduseConstruction;
900  s_visualCategories["landuse=industrial"] = GeoDataFeature::LanduseIndustrial;
901  s_visualCategories["landuse=landfill"] = GeoDataFeature::LanduseLandfill;
902  s_visualCategories["landuse=meadow"] = GeoDataFeature::LanduseMeadow;
903  s_visualCategories["landuse=military"] = GeoDataFeature::LanduseMilitary;
904  s_visualCategories["landuse=orchard"] = GeoDataFeature::LanduseFarmland;
905  s_visualCategories["landuse=quarry"] = GeoDataFeature::LanduseQuarry;
906  s_visualCategories["landuse=railway"] = GeoDataFeature::LanduseRailway;
907  s_visualCategories["landuse=reservoir"] = GeoDataFeature::LanduseReservoir;
908  s_visualCategories["landuse=residential"] = GeoDataFeature::LanduseResidential;
909  s_visualCategories["landuse=retail"] = GeoDataFeature::LanduseRetail;
910 
911  s_visualCategories["leisure=park"] = GeoDataFeature::LeisurePark;
912  s_visualCategories["leisure=pitch"] = GeoDataFeature::LeisurePark;
913  s_visualCategories["leisure=playgound"] = GeoDataFeature::LeisurePark;
914 
915  s_visualCategories["railway=rail"] = GeoDataFeature::RailwayRail;
916  s_visualCategories["railway=tram"] = GeoDataFeature::RailwayTram;
917  s_visualCategories["railway=light_rail"] = GeoDataFeature::RailwayLightRail;
918  s_visualCategories["railway=preserved"] = GeoDataFeature::RailwayPreserved;
919  s_visualCategories["railway=abandoned"] = GeoDataFeature::RailwayAbandoned;
920  s_visualCategories["railway=disused"] = GeoDataFeature::RailwayAbandoned;
921  s_visualCategories["railway=subway"] = GeoDataFeature::RailwaySubway;
922  s_visualCategories["railway=miniature"] = GeoDataFeature::RailwayMiniature;
923  s_visualCategories["railway=construction"] = GeoDataFeature::RailwayConstruction;
924  s_visualCategories["railway=monorail"] = GeoDataFeature::RailwayMonorail;
925  s_visualCategories["railway=funicular"] = GeoDataFeature::RailwayFunicular;
926  s_visualCategories["railway=station"] = GeoDataFeature::TransportTrainStation;
927 
928  s_visualCategories["transport=aerodrome"] = GeoDataFeature::TransportAerodrome;
929  s_visualCategories["transport=airpor_terminal"] = GeoDataFeature::TransportAirportTerminal;
930  s_visualCategories["transport=bus_station"] = GeoDataFeature::TransportBusStation;
931  s_visualCategories["transport=bus_stop"] = GeoDataFeature::TransportBusStop;
932  s_visualCategories["transport=car_share"] = GeoDataFeature::TransportCarShare;
933  s_visualCategories["transport=fuel"] = GeoDataFeature::TransportFuel;
934  s_visualCategories["transport=parking"] = GeoDataFeature::TransportParking;
935  s_visualCategories["transport=rental_bicycle"] = GeoDataFeature::TransportRentalBicycle;
936  s_visualCategories["transport=rental_car"] = GeoDataFeature::TransportRentalCar;
937  s_visualCategories["transport=taxi_rank"] = GeoDataFeature::TransportTaxiRank;
938  s_visualCategories["transport=train_station"] = GeoDataFeature::TransportTrainStation;
939  s_visualCategories["transport=tram_stop"] = GeoDataFeature::TransportTramStop;
940 
941  s_visualCategories["place=city"] = GeoDataFeature::LargeCity;
942  s_visualCategories["place=hamlet"] = GeoDataFeature::SmallCity;
943  s_visualCategories["place=locality"] = GeoDataFeature::SmallCity;
944  s_visualCategories["place=town"] = GeoDataFeature::BigCity;
945  s_visualCategories["place=village"] = GeoDataFeature::MediumCity;
946 
947  // Default for buildings
948  s_visualCategories["building=yes"] = GeoDataFeature::Building;
949 
950 }
951 
952 }
GeoDataDocument.h
Marble::GeoDataDocument::styleMap
GeoDataStyleMap & styleMap(const QString &styleId) const
Return a style in the style storage.
Definition: GeoDataDocument.cpp:150
Marble::GeoDataFeature::TouristAttraction
Definition: GeoDataFeature.h:197
Marble::GeoDataFeature::LastIndex
Definition: GeoDataFeature.h:269
Marble::GeoDataFeature::TransportTrainStation
Definition: GeoDataFeature.h:219
Marble::GeoDataFeature::RailwaySubway
Definition: GeoDataFeature.h:258
Marble::GeoDataFeature::OsmVisualCategory
static GeoDataVisualCategory OsmVisualCategory(const QString &keyValue)
Convenience categorization of placemarks for Osm key=value pairs.
Definition: GeoDataFeature.cpp:785
Marble::GeoDataFeature::LargeCountyCapital
Definition: GeoDataFeature.h:95
Marble::GeoDataFeaturePrivate::initializeDefaultStyles
static void initializeDefaultStyles()
Definition: GeoDataFeature.cpp:104
Marble::GeoDataFeature::HighwayMotorwayLink
Definition: GeoDataFeature.h:153
Marble::GeoDataFeature::FoodPub
Definition: GeoDataFeature.h:179
Marble::GeoDataFeature::TransportCarShare
Definition: GeoDataFeature.h:213
Marble::GeoDataAbstractView
Definition: GeoDataAbstractView.h:28
Marble::GeoDataDocument
A container for Features, Styles and in the future Schemas.
Definition: GeoDataDocument.h:64
Marble::GeoDataTimeStamp
Definition: GeoDataTimeStamp.h:27
Marble::GeoDataFeature::timeStamp
GeoDataTimeStamp & timeStamp() const
Return the timestamp of the feature.
Definition: GeoDataFeature.cpp:613
Marble::GeoDataFeature::AccomodationCamping
Definition: GeoDataFeature.h:160
Marble::GeoDataFeature::HighwayMotorway
Definition: GeoDataFeature.h:154
Marble::GeoDataFeature::TransportTramStop
Definition: GeoDataFeature.h:220
Marble::GeoDataFeature::LanduseReservoir
Definition: GeoDataFeature.h:250
Marble::GeoDataFeaturePrivate::s_defaultStyleInitialized
static bool s_defaultStyleInitialized
Definition: GeoDataFeature_p.h:212
Marble::GeoDataFeature::ReligionHindu
Definition: GeoDataFeature.h:227
Marble::MarbleDirs::path
static QString path(const QString &relativePath)
Definition: MarbleDirs.cpp:53
Marble::GeoDataFeature::RailwayMiniature
Definition: GeoDataFeature.h:260
Marble::GeoDataFeature::HighwayPedestrian
Definition: GeoDataFeature.h:142
Marble::GeoDataFeature::Continent
Definition: GeoDataFeature.h:105
Marble::GeoDataFeature::MediumStateCapital
Definition: GeoDataFeature.h:88
Marble::GeoDataFeature::TransportTaxiRank
Definition: GeoDataFeature.h:218
Marble::GeoDataFeature::HighwayTertiaryLink
Definition: GeoDataFeature.h:145
Marble::GeoDataDocument::style
GeoDataStyle & style(const QString &styleId) const
Return a style in the style storage.
Definition: GeoDataDocument.cpp:123
Marble::GeoDataFeature::Unknown
Definition: GeoDataFeature.h:78
Marble::GeoDataFeature::Mons
Definition: GeoDataFeature.h:103
GeoDataContainer.h
Marble::GeoDataFeature::SmallNationCapital
Definition: GeoDataFeature.h:85
Marble::GeoDataFeature::role
const QString role() const
Return the role of the placemark.
Definition: GeoDataFeature.cpp:686
Marble::GeoDataFeature::TouristViewPoint
Definition: GeoDataFeature.h:205
Marble::GeoDataFeature::setVisualCategory
void setVisualCategory(GeoDataVisualCategory category)
Sets the symbol index of the placemark.
Definition: GeoDataFeature.cpp:680
Marble::GeoDataFeature::featureId
EnumFeatureId featureId() const
Definition: GeoDataFeature.cpp:99
Marble::GeoDataFeature::OsmSite
Definition: GeoDataFeature.h:122
Marble::GeoDataFeaturePrivate::m_name
QString m_name
Definition: GeoDataFeature_p.h:179
Marble::GeoDataFeature::Default
Definition: GeoDataFeature.h:77
Marble::GeoDataFeaturePrivate::m_role
QString m_role
Definition: GeoDataFeature_p.h:193
Marble::defaultSize
static const int defaultSize
Definition: GeoDataLabelStyle.cpp:23
Marble::GeoDataFeature::defaultLabelColor
static QColor defaultLabelColor()
Definition: GeoDataFeature.cpp:469
Marble::GeoDataObject
A base class for all geodata objects.
Definition: GeoDataObject.h:48
Marble::GeoDataFeature::Folder
Definition: GeoDataFeature.h:131
Marble::GeoDataFeature::setDescription
void setDescription(const QString &value)
Set the description of this feature to value.
Definition: GeoDataFeature.cpp:518
Marble::GeoDataFeature::HighwayRoad
Definition: GeoDataFeature.h:144
Marble::GeoDataFeature::Mountain
Definition: GeoDataFeature.h:101
Marble::GeoDataFeature::setExtendedData
void setExtendedData(const GeoDataExtendedData &extendedData)
Sets the ExtendedData of the feature.
Definition: GeoDataFeature.cpp:658
Marble::GeoDataTypes::GeoDataDocumentType
const char * GeoDataDocumentType
Definition: GeoDataTypes.cpp:34
Marble::GeoDataFeature::RailwayLightRail
Definition: GeoDataFeature.h:256
Marble::GeoDataObject::parent
virtual GeoDataObject * parent() const
Provides the parent of the object in GeoDataContainers.
Definition: GeoDataObject.cpp:65
Marble::GeoDataFeature::HealthHospital
Definition: GeoDataFeature.h:184
GeoDataStyle.h
Marble::GeoDataFeature::isVisible
bool isVisible() const
Return whether this feature is visible or not.
Definition: GeoDataFeature.cpp:581
Marble::GeoDataObject::pack
virtual void pack(QDataStream &stream) const
Reimplemented from Serializable.
Definition: GeoDataObject.cpp:114
Marble::GeoDataFeature::Crater
Definition: GeoDataFeature.h:110
Marble::GeoDataFeature::HighwayUnknown
Definition: GeoDataFeature.h:139
Marble::GeoDataContainer
A base class that can hold GeoDataFeatures.
Definition: GeoDataContainer.h:47
Marble::GeoDataFeature::description
QString description() const
Return the text description of the feature.
Definition: GeoDataFeature.cpp:513
Marble::GeoDataFeaturePrivate::m_region
GeoDataRegion m_region
Definition: GeoDataFeature_p.h:203
Marble::GeoDataFeature::style
const GeoDataStyle * style() const
Return the style assigned to the placemark.
Definition: GeoDataFeature.cpp:624
Marble::GeoDataFeature::RailwayFunicular
Definition: GeoDataFeature.h:263
Marble::GeoDataFeaturePrivate::m_timeSpan
GeoDataTimeSpan m_timeSpan
Definition: GeoDataFeature_p.h:200
Marble::GeoDataFeature::ReligionPlaceOfWorship
Definition: GeoDataFeature.h:223
Marble::GeoDataFeature::zoomLevel
int zoomLevel() const
Return the popularity index of the placemark.
Definition: GeoDataFeature.cpp:707
Marble::GeoDataStyleMap
a class to map different styles to one style
Definition: GeoDataStyleMap.h:38
Marble::GeoDataFeature::setPhoneNumber
void setPhoneNumber(const QString &value)
Set the phone number of this feature to value.
Definition: GeoDataFeature.cpp:507
Marble::GeoDataFeature::OtherTerrain
Definition: GeoDataFeature.h:107
Marble::GeoDataFeature::ShoppingBeverages
Definition: GeoDataFeature.h:192
Marble::GeoDataFeature::Coordinate
Definition: GeoDataFeature.h:123
Marble::GeoDataFeaturePrivate::m_style
const GeoDataStyle * m_style
Definition: GeoDataFeature_p.h:195
Marble::GeoDataFeature::styleUrl
QString styleUrl() const
Return the styleUrl of the feature.
Definition: GeoDataFeature.cpp:551
Marble::GeoDataFeature::AmenityLibrary
Definition: GeoDataFeature.h:167
Marble::GeoDataFeature::Valley
Definition: GeoDataFeature.h:104
Marble::GeoDataFeature::ReligionBuddhist
Definition: GeoDataFeature.h:225
Marble::GeoDataFeature::Bookmark
Definition: GeoDataFeature.h:132
Marble::GeoDataFeature::pack
virtual void pack(QDataStream &stream) const
Serialize the contents of the feature to stream.
Definition: GeoDataFeature.cpp:754
Marble::GeoDataFeaturePrivate::m_timeStamp
GeoDataTimeStamp m_timeStamp
Definition: GeoDataFeature_p.h:201
Marble::GeoDataFeature::AirPort
Definition: GeoDataFeature.h:117
Marble::GeoDataFeature::Nation
Definition: GeoDataFeature.h:98
MarbleDebug.h
Marble::GeoDataFeature::AccomodationMotel
Definition: GeoDataFeature.h:163
Marble::GeoDataFeature::ReligionJain
Definition: GeoDataFeature.h:228
Marble::GeoDataFeature::Wikipedia
Definition: GeoDataFeature.h:121
Marble::GeoDataFeature::RailwayPreserved
Definition: GeoDataFeature.h:259
Marble::GeoDataExtendedData
a class which allows to add custom data to KML Feature.
Definition: GeoDataExtendedData.h:35
Marble::GeoDataFeature::AccomodationYouthHostel
Definition: GeoDataFeature.h:164
Marble::GeoDataObject::nodeType
virtual const char * nodeType() const =0
Provides type information for downcasting a GeoNode.
Marble::GeoDataFeature::HighwayTrack
Definition: GeoDataFeature.h:141
Marble::GeoDataFeature::LargeStateCapital
Definition: GeoDataFeature.h:96
Marble::GeoDataFeature::popularity
qint64 popularity() const
Return the popularity of the feature.
Definition: GeoDataFeature.cpp:718
Marble::GeoDataObject::setParent
virtual void setParent(GeoDataObject *parent)
Sets the parent of the object.
Definition: GeoDataObject.cpp:70
Marble::GeoDataFeature::LanduseQuarry
Definition: GeoDataFeature.h:248
Marble::GeoDataStyle::labelStyle
GeoDataLabelStyle & labelStyle() const
Return the label style of this style.
Definition: GeoDataStyle.cpp:128
Marble::GeoDataFeaturePrivate::m_phoneNumber
QString m_phoneNumber
Definition: GeoDataFeature_p.h:183
Marble::GeoDataFeature::SmallStateCapital
Definition: GeoDataFeature.h:84
Marble::GeoDataFeature::HighwaySteps
Definition: GeoDataFeature.h:138
Marble::GeoDataFeature::abstractView
const GeoDataAbstractView * abstractView() const
Get the Abstract view of the feature.
Definition: GeoDataFeature.cpp:535
Marble::GeoDataFeature::MediumCountyCapital
Definition: GeoDataFeature.h:87
Marble::GeoDataFeature::LanduseBasin
Definition: GeoDataFeature.h:236
Marble::GeoDataFeature::styleMap
const GeoDataStyleMap * styleMap() const
Return a pointer to a GeoDataStyleMap object which represents the styleMap of this feature...
Definition: GeoDataFeature.cpp:697
Marble::GeoDataFeaturePrivate::m_styleUrl
QString m_styleUrl
Definition: GeoDataFeature_p.h:184
Marble::GeoDataFeature::LanduseMeadow
Definition: GeoDataFeature.h:246
Marble::GeoDataFeature::MoneyBank
Definition: GeoDataFeature.h:189
Marble::GeoDataFeature::FoodCafe
Definition: GeoDataFeature.h:177
Marble::GeoDataStyle
an addressable style group
Definition: GeoDataStyle.h:55
Marble::GeoDataFeature::AccomodationHostel
Definition: GeoDataFeature.h:161
GeoDataFeature.h
Marble::GeoDataFeature::LanduseResidential
Definition: GeoDataFeature.h:251
GeoDataRegion.h
Marble::GeoDataFeature::setPopularity
void setPopularity(qint64 popularity)
Sets the popularity of the feature.
Definition: GeoDataFeature.cpp:723
Marble::GeoDataFeature::setTimeStamp
void setTimeStamp(const GeoDataTimeStamp &timeStamp)
Set the timestamp of the feature.
Definition: GeoDataFeature.cpp:618
Marble::GeoDataFeaturePrivate
Definition: GeoDataFeature_p.h:30
Marble::GeoDataFeaturePrivate::m_description
QString m_description
Definition: GeoDataFeature_p.h:180
Marble::GeoDataFeature::HighwayTertiary
Definition: GeoDataFeature.h:146
Marble::GeoDataFeature::HighwayPrimary
Definition: GeoDataFeature.h:150
Marble::GeoDataFeature::descriptionIsCDATA
bool descriptionIsCDATA() const
test if the description is CDATA or not CDATA allows for special characters to be included in XML and...
Definition: GeoDataFeature.cpp:524
Marble::GeoDataFeaturePrivate::m_abstractView
GeoDataAbstractView * m_abstractView
Definition: GeoDataFeature_p.h:185
Marble::GeoDataFeature::MannedLandingSite
Definition: GeoDataFeature.h:126
Marble::GeoDataFeature::setName
void setName(const QString &value)
Set a new name for this feature.
Definition: GeoDataFeature.cpp:485
Marble::GeoDataFeature::ReligionShinto
Definition: GeoDataFeature.h:230
GeoDataFeature_p.h
Marble::GeoDataFeaturePrivate::initializeOsmVisualCategories
static void initializeOsmVisualCategories()
Definition: GeoDataFeature.cpp:793
Marble::GeoDataFeature::Volcano
Definition: GeoDataFeature.h:102
Marble::GeoDataFeature::TransportAerodrome
Definition: GeoDataFeature.h:209
Marble::GeoDataFeature::AccomodationHotel
Definition: GeoDataFeature.h:162
Marble::GeoDataFeature::Ocean
Definition: GeoDataFeature.h:106
Marble::GeoDataFeature::HighwayTrunk
Definition: GeoDataFeature.h:152
Marble::GeoDataFeature::RailwayTram
Definition: GeoDataFeature.h:255
Marble::GeoDataFeature::region
GeoDataRegion & region() const
Return the region assigned to the placemark.
Definition: GeoDataFeature.cpp:664
MarbleDirs.h
Marble::GeoDataFeature::RailwayRail
Definition: GeoDataFeature.h:254
Marble::GeoDataLabelStyle::setFont
void setFont(const QFont &font)
Set the font of the label.
Definition: GeoDataLabelStyle.cpp:115
Marble::GeoDataFeature::timeSpan
GeoDataTimeSpan & timeSpan() const
Return the timespan of the feature.
Definition: GeoDataFeature.cpp:602
Marble::GeoDataFeature::TransportBusStation
Definition: GeoDataFeature.h:211
Marble::GeoDataFeaturePrivate::s_defaultStyle
static GeoDataStyle * s_defaultStyle[GeoDataFeature::LastIndex]
Definition: GeoDataFeature_p.h:211
Marble::GeoDataFeature::unpack
virtual void unpack(QDataStream &stream)
Unserialize the contents of the feature from stream.
Definition: GeoDataFeature.cpp:769
Marble::GeoDataFeature::TransportRentalBicycle
Definition: GeoDataFeature.h:216
Marble::GeoDataFeaturePrivate::featureId
virtual EnumFeatureId featureId() const
Definition: GeoDataFeature_p.h:108
Marble::GeoDataFeature::resetDefaultStyles
static void resetDefaultStyles()
Return the label font of the placemark.
Definition: GeoDataFeature.cpp:729
Marble::GeoDataFeature::TouristCinema
Definition: GeoDataFeature.h:199
Marble::GeoDataFeaturePrivate::nodeType
virtual const char * nodeType() const
Definition: GeoDataFeature_p.h:117
Marble::GeoDataFeature::phoneNumber
QString phoneNumber() const
Return the phone number of the feature.
Definition: GeoDataFeature.cpp:502
Marble::GeoDataFeaturePrivate::s_defaultLabelColor
static QColor s_defaultLabelColor
Definition: GeoDataFeature_p.h:209
Marble::GeoDataFeature::setDefaultLabelColor
static void setDefaultLabelColor(const QColor &color)
Definition: GeoDataFeature.cpp:474
Marble::GeoDataFeature::LanduseIndustrial
Definition: GeoDataFeature.h:244
Marble::GeoDataFeature::HealthDoctors
Definition: GeoDataFeature.h:183
Marble::GeoDataFeature::ShoppingSupermarket
Definition: GeoDataFeature.h:194
Marble::GeoDataFeaturePrivate::createOsmPOIStyle
static GeoDataStyle * createOsmPOIStyle(const QFont &font, const QString &bitmap, const QColor &color=QColor(0xBE, 0xAD, 0xAD), const QColor &outline=QColor(0xBE, 0xAD, 0xAD).darker())
Definition: GeoDataFeature_p.h:125
Marble::GeoDataFeature::d
GeoDataFeaturePrivate * d
Definition: GeoDataFeature.h:484
Marble::GeoDataFeature::FoodFastFood
Definition: GeoDataFeature.h:178
Marble::GeoDataFeature::LanduseAllotments
Definition: GeoDataFeature.h:235
Marble::GeoDataFeature::TouristRuin
Definition: GeoDataFeature.h:202
Marble::GeoDataFeature::RailwayConstruction
Definition: GeoDataFeature.h:261
GeoDataPlacemark.h
Marble::GeoDataFeature::ReligionBahai
Definition: GeoDataFeature.h:224
Marble::GeoDataFeature::LanduseGrass
Definition: GeoDataFeature.h:243
Marble::GeoDataFeature::NaturalWood
Definition: GeoDataFeature.h:135
GeoDataStyleMap.h
Marble::GeoDataFeature::isGloballyVisible
bool isGloballyVisible() const
Return whether this feature is visible or not in the context of its parenting.
Definition: GeoDataFeature.cpp:592
Marble::GeoDataFeature::NaturalWater
Definition: GeoDataFeature.h:134
Marble::GeoDataFeature::MediumNationCapital
Definition: GeoDataFeature.h:89
Marble::GeoDataFeaturePrivate::m_extendedData
GeoDataExtendedData m_extendedData
Definition: GeoDataFeature_p.h:198
Marble::GeoDataFeature::TransportFuel
Definition: GeoDataFeature.h:214
Marble::GeoDataFeature::BigCity
Definition: GeoDataFeature.h:90
Marble::GeoDataFeature::setStyleUrl
void setStyleUrl(const QString &value)
Set the styleUrl of this feature to value.
Definition: GeoDataFeature.cpp:556
Marble::GeoDataFeature::setDefaultFont
static void setDefaultFont(const QFont &font)
Definition: GeoDataFeature.cpp:463
Marble::GeoDataFeaturePrivate::m_visualCategory
GeoDataFeature::GeoDataVisualCategory m_visualCategory
Definition: GeoDataFeature_p.h:190
Marble::GeoDataLabelStyle::Center
Definition: GeoDataLabelStyle.h:39
Marble::GeoDataFeaturePrivate::createHighwayStyle
static GeoDataStyle * createHighwayStyle(const QString &bitmap, const QColor &color, qreal width=1, qreal realWidth=0.0, Qt::PenStyle penStyle=Qt::SolidLine, Qt::PenCapStyle capStyle=Qt::RoundCap)
Definition: GeoDataFeature_p.h:136
Marble::GeoDataFeature::TouristZoo
Definition: GeoDataFeature.h:206
Marble::GeoDataFeature::LanduseLandfill
Definition: GeoDataFeature.h:245
Marble::GeoDataFeature::MagneticPole
Definition: GeoDataFeature.h:115
Marble::GeoDataFeaturePrivate::ref
QAtomicInt ref
Definition: GeoDataFeature_p.h:205
Marble::GeoDataFeature::setAddress
void setAddress(const QString &value)
Set the address of this feature to value.
Definition: GeoDataFeature.cpp:496
Marble::GeoDataFeature::HighwaySecondary
Definition: GeoDataFeature.h:148
Marble::GeoDataFeature::GeoDataFeature
GeoDataFeature()
Definition: GeoDataFeature.cpp:42
Marble::EnumFeatureId
EnumFeatureId
Definition: Serializable.h:30
Marble::GeoDataFeature::HighwayTrunkLink
Definition: GeoDataFeature.h:151
Marble::GeoDataFeature::LargeCity
Definition: GeoDataFeature.h:94
Marble::GeoDataFeature::LanduseGarages
Definition: GeoDataFeature.h:242
Marble::GeoDataFeature::setTimeSpan
void setTimeSpan(const GeoDataTimeSpan &timeSpan)
Set the timespan of the feature.
Definition: GeoDataFeature.cpp:607
Marble::GeoDataFeature::TouristTheatre
Definition: GeoDataFeature.h:203
Marble::GeoDataFeature::setVisible
void setVisible(bool value)
Set a new value for visibility.
Definition: GeoDataFeature.cpp:586
Marble::GeoDataFeature::ReligionSikh
Definition: GeoDataFeature.h:231
Marble::GeoDataFeature::ReligionJewish
Definition: GeoDataFeature.h:229
Marble::GeoDataFeature::RailwayAbandoned
Definition: GeoDataFeature.h:257
Marble::GeoDataTimeSpan
Definition: GeoDataTimeSpan.h:27
GeoDataFolder.h
Marble::GeoDataFeaturePrivate::s_visualCategories
static QMap< QString, GeoDataFeature::GeoDataVisualCategory > s_visualCategories
Definition: GeoDataFeature_p.h:214
Marble::GeoDataFeature::BigNationCapital
Definition: GeoDataFeature.h:93
Marble::GeoDataFeature::EducationUniversity
Definition: GeoDataFeature.h:172
Marble::GeoDataFeature::BigCountyCapital
Definition: GeoDataFeature.h:91
Marble::GeoDataFeature::RoboticRover
Definition: GeoDataFeature.h:127
Marble::GeoDataFeature::setStyleMap
void setStyleMap(const GeoDataStyleMap *map)
Sets the styleMap of the feature.
Definition: GeoDataFeature.cpp:702
Marble::GeoDataFeature::visualCategory
GeoDataVisualCategory visualCategory() const
Return the symbol index of the placemark.
Definition: GeoDataFeature.cpp:675
Marble::GeoDataFeature::EducationCollege
Definition: GeoDataFeature.h:170
Marble::GeoDataFeature::FoodBar
Definition: GeoDataFeature.h:175
Marble::GeoDataFeature::address
QString address() const
Return the address of the feature.
Definition: GeoDataFeature.cpp:491
Marble::GeoDataFeature::setDescriptionCDATA
void setDescriptionCDATA(bool cdata)
Set the description to be CDATA See:
Definition: GeoDataFeature.cpp:529
Marble::GeoDataFeaturePrivate::m_popularity
qint64 m_popularity
Definition: GeoDataFeature_p.h:186
Marble::GeoDataFeature::UnmannedHardLandingSite
Definition: GeoDataFeature.h:129
Marble::GeoDataFeature::LanduseCommercial
Definition: GeoDataFeature.h:238
Marble::GeoDataFeaturePrivate::m_styleMap
const GeoDataStyleMap * m_styleMap
Definition: GeoDataFeature_p.h:196
Marble::GeoDataFeature::Building
Definition: GeoDataFeature.h:157
Marble::GeoDataFeature
A base class for all geodata features.
Definition: GeoDataFeature.h:55
Marble::GeoDataFeature::LanduseConstruction
Definition: GeoDataFeature.h:239
Marble::GeoDataFeature::name
QString name() const
The name of the feature.
Definition: GeoDataFeature.cpp:480
Marble::GeoDataObject::operator=
GeoDataObject & operator=(const GeoDataObject &)
Definition: GeoDataObject.cpp:54
Marble::GeoDataFeature::Satellite
Definition: GeoDataFeature.h:265
Marble::GeoDataFeature::GeographicPole
Definition: GeoDataFeature.h:114
Marble::GeoDataFeature::setRegion
void setRegion(const GeoDataRegion &region)
Sets the region of the placemark.
Definition: GeoDataFeature.cpp:669
Marble::GeoDataFeature::ReligionChristian
Definition: GeoDataFeature.h:226
Marble::GeoDataFeature::MediumCity
Definition: GeoDataFeature.h:86
Marble::GeoDataFeature::SmallCountyCapital
Definition: GeoDataFeature.h:83
Marble::GeoDataFeaturePrivate::s_defaultFont
static QFont s_defaultFont
Definition: GeoDataFeature_p.h:208
Marble::GeoDataFeature::LanduseFarmland
Definition: GeoDataFeature.h:240
Marble::GeoDataFeature::TouristCastle
Definition: GeoDataFeature.h:198
Marble::GeoDataFeaturePrivate::m_visible
bool m_visible
Definition: GeoDataFeature_p.h:189
Marble::GeoDataFeature::HighwayPath
Definition: GeoDataFeature.h:140
Marble::GeoDataFeature::TransportRentalCar
Definition: GeoDataFeature.h:217
Marble::GeoDataFeature::LanduseRetail
Definition: GeoDataFeature.h:252
Marble::GeoDataRegion
GeoDataRegion describes the visibility and extent of a feature.
Definition: GeoDataRegion.h:49
Marble::GeoDataObject::unpack
virtual void unpack(QDataStream &steam)
Reimplemented from Serializable.
Definition: GeoDataObject.cpp:120
Marble::GeoDataFeature::TransportBusStop
Definition: GeoDataFeature.h:212
Marble::GeoDataFeature::setRole
void setRole(const QString &role)
Sets the role of the placemark.
Definition: GeoDataFeature.cpp:691
Marble::GeoDataFeature::UnmannedSoftLandingSite
Definition: GeoDataFeature.h:128
Marble::GeoDataFeature::HighwaySecondaryLink
Definition: GeoDataFeature.h:147
Marble::GeoDataLabelStyle::setAlignment
void setAlignment(GeoDataLabelStyle::Alignment alignment)
Set the alignment of the label.
Definition: GeoDataLabelStyle.cpp:95
Marble::GeoDataFeature::setZoomLevel
void setZoomLevel(int index)
Sets the popularity index of the placemark.
Definition: GeoDataFeature.cpp:712
Marble::GeoDataLabelStyle::font
QFont font() const
Return the current font of the label.
Definition: GeoDataLabelStyle.cpp:120
Marble::GeoDataFeature::setStyle
void setStyle(GeoDataStyle *style)
Sets the style of the placemark.
Definition: GeoDataFeature.cpp:645
Marble::GeoDataFeature::None
Definition: GeoDataFeature.h:76
Marble::GeoDataFeaturePrivate::m_descriptionCDATA
bool m_descriptionCDATA
Definition: GeoDataFeature_p.h:181
Marble::GeoDataFeature::GeoDataVisualCategory
GeoDataVisualCategory
A categorization of a placemark as defined by ...FIXME.
Definition: GeoDataFeature.h:75
Marble::GeoDataFeature::Observatory
Definition: GeoDataFeature.h:118
Marble::GeoDataFeature::extendedData
GeoDataExtendedData & extendedData() const
Return the ExtendedData assigned to the feature.
Definition: GeoDataFeature.cpp:653
Marble::GeoDataFeature::ShoppingHifi
Definition: GeoDataFeature.h:193
Marble::GeoDataFeature::setAbstractView
void setAbstractView(GeoDataAbstractView *abstractView)
Set the abstract view of the feature.
Definition: GeoDataFeature.cpp:545
Marble::GeoDataFeature::HighwayService
Definition: GeoDataFeature.h:143
Marble::GeoDataFeature::LargeNationCapital
Definition: GeoDataFeature.h:97
Marble::GeoDataFeaturePrivate::createStyle
static GeoDataStyle * createStyle(qreal width, qreal realWidth, const QColor &color, const QColor &outlineColor, bool fill, bool outline, Qt::BrushStyle brushStyle, Qt::PenStyle penStyle, Qt::PenCapStyle capStyle, bool lineBackground, const QVector< qreal > &dashPattern=QVector< qreal >())
Definition: GeoDataFeature_p.h:155
Marble::GeoDataFeature::LeisurePark
Definition: GeoDataFeature.h:233
Marble::GeoDataFeature::defaultFont
static QFont defaultFont()
Definition: GeoDataFeature.cpp:458
Marble::GeoDataFeaturePrivate::copy
virtual GeoDataFeaturePrivate * copy()
Definition: GeoDataFeature_p.h:101
Marble::GeoDataFeature::nodeType
virtual const char * nodeType() const
Provides type information for downcasting a GeoData.
Definition: GeoDataFeature.cpp:94
Marble::GeoDataFeaturePrivate::createWayStyle
static GeoDataStyle * createWayStyle(const QColor &color, const QColor &outlineColor, bool fill=true, bool outline=true, Qt::BrushStyle brushStyle=Qt::SolidPattern)
Definition: GeoDataFeature_p.h:148
Marble::GeoDataFeature::~GeoDataFeature
virtual ~GeoDataFeature()
Definition: GeoDataFeature.cpp:68
Marble::GeoDataFeature::TouristMuseum
Definition: GeoDataFeature.h:201
Marble::GeoDataFeaturePrivate::m_address
QString m_address
Definition: GeoDataFeature_p.h:182
Marble::GeoDataFeature::LanduseFarmyard
Definition: GeoDataFeature.h:241
Marble::GeoDataFeature::TouristMonument
Definition: GeoDataFeature.h:200
Marble::GeoDataFeature::ShipWreck
Definition: GeoDataFeature.h:116
Marble::GeoDataFeaturePrivate::m_zoomLevel
int m_zoomLevel
Definition: GeoDataFeature_p.h:187
Marble::GeoDataFeature::LanduseCemetery
Definition: GeoDataFeature.h:237
Marble::GeoDataFeature::detach
virtual void detach()
Definition: GeoDataFeature.cpp:734
Marble::GeoDataFeature::HealthPharmacy
Definition: GeoDataFeature.h:185
Marble::GeoDataFeature::Mare
Definition: GeoDataFeature.h:111
Marble::GeoDataFeature::LanduseRailway
Definition: GeoDataFeature.h:249
Marble::GeoDataFeature::TransportAirportTerminal
Definition: GeoDataFeature.h:210
Marble::GeoDataFeature::LanduseMilitary
Definition: GeoDataFeature.h:247
Marble::GeoDataFeature::operator=
GeoDataFeature & operator=(const GeoDataFeature &other)
Definition: GeoDataFeature.cpp:80
Marble::GeoDataFeature::HighwayPrimaryLink
Definition: GeoDataFeature.h:149
Marble::GeoDataFeature::EducationSchool
Definition: GeoDataFeature.h:171
Marble::GeoDataFeature::BigStateCapital
Definition: GeoDataFeature.h:92
Marble::GeoDataFeature::FoodBiergarten
Definition: GeoDataFeature.h:176
Marble::GeoDataFeature::FoodRestaurant
Definition: GeoDataFeature.h:180
Marble::GeoDataFeature::TransportParking
Definition: GeoDataFeature.h:215
Marble::GeoDataFeature::TouristThemePark
Definition: GeoDataFeature.h:204
Marble::GeoDataFeature::RailwayMonorail
Definition: GeoDataFeature.h:262
Marble::GeoDataFeature::SmallCity
Definition: GeoDataFeature.h:82
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:49 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal