[Marble-devel] [Differential] [Request, 143 lines] D1992: Styling antarctic ice shelves[ still incomplete ]

tandon (Akshat Tandon) noreply at phabricator.kde.org
Fri Jun 24 15:03:55 UTC 2016


tandon created this revision.
tandon added reviewers: nienhueser, rahn.
tandon added subscribers: nienhueser, rahn.
tandon set the repository for this revision to rMARBLE Marble.

REVISION SUMMARY
  **Issue**
  For displaying ice shelves Marble needs to parse the following tags [('glacier:type','shelf'), ('natural', 'glacier')]. Due to the ('natural', 'glacier') key-valye pair, the corresponding placemark gets a visual category of NaturalGlacier however since the OSM way also contains an additional tag ('glacier:type','shelf'), the placemark must be styled differently from a plain NaturalGlacier. Now an antarctic ice shelf can either be a single GeoDataLinearRing or it may be a GeoDataPolygon which consists of several inner and outer rings.
  
  Currently when Marble parses an OSM relation which describes a multipolygon, it does not store the the tags(key-value) pairs of a relation's component ways. During parsing it just determines the visual category of the OSM multipolygon relation from its component ways and stores it into the corresponding placemark. Also it stores the key-value pairs of the OSM relation but discards the key-value pairs of the OSM relation's component ways which effects the conditional styling of certain placemarks.
  
  **Problem**
  In spite of modifying the OSM parsing classes so as to handle the above issues I am not able to store the key-value pairs of the OSM relation's component ways into its OsmPlacemarkData. When I tried to add a few qDebug() statements in OsmParser.cpp and OsmRelation.cpp to check any mistake which I may be making, these statements are displaying nothing, i.e qDebug() is not working when I use it inside OsmParser.cpp or OsmRelation.cpp**
  
  **Current Rendering**
  F157800: shelf.png <https://phabricator.kde.org/F157800>
  
  As you can see in the image below, the GeoDataLinearRings i.e rings which don't have any holes are rendered properly, but GeoDataPolygons i.e rings which have holes in them are rendered as if they are plain NaturalGlaciers and not ice shelves.
  F157801: shelf2.png <https://phabricator.kde.org/F157801>

REPOSITORY
  rMARBLE Marble

REVISION DETAIL
  https://phabricator.kde.org/D1992

AFFECTED FILES
  src/lib/marble/StyleBuilder.cpp
  src/lib/marble/osm/OsmPlacemarkData.cpp
  src/lib/marble/osm/OsmPlacemarkData.h
  src/plugins/runner/osm/OsmParser.cpp
  src/plugins/runner/osm/OsmParser.h
  src/plugins/runner/osm/OsmRelation.cpp
  src/plugins/runner/osm/OsmRelation.h
  tools/shp2osm/polyshp2osm.py

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: tandon, nienhueser, rahn
Cc: rahn, nienhueser, marble-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20160624/c2e62a5c/attachment.html>


More information about the Marble-devel mailing list