[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/lib/geodata/writers/kml
From:       Dennis Nienhüser <earthwings () gentoo ! org>
Date:       2011-01-07 12:22:23
Message-ID: 20110107122223.1EE0FAC8B0 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1212545 by nienhueser:

Altitude must be written as well in linestrings.

 M  +17 -2     KmlLineStringTagWriter.cpp  


--- trunk/KDE/kdeedu/marble/src/lib/geodata/writers/kml/KmlLineStringTagWriter.cpp #1212544:1212545
@@ -32,8 +32,17 @@
         writer.writeStartElement( kml::kmlTag_LineString );
         writer.writeStartElement( "coordinates" );
 
-        for ( int i = 0; i < lineString->size(); ++i )
-        {
+        // Write altitude for *all* elements, if *any* element
+        // has altitude information (!= 0.0)
+        bool hasAltitude = false;
+        for ( int i = 0; i < lineString->size(); ++i ) {
+            if ( lineString->at( i ).altitude() ) {
+                hasAltitude = true;
+                break;
+            }
+        }
+
+        for ( int i = 0; i < lineString->size(); ++i ) {
             GeoDataCoordinates coordinates = lineString->at( i );
             if ( i > 0 )
             {
@@ -45,7 +54,13 @@
             writer.writeCharacters( "," );
             qreal lat = coordinates.latitude( GeoDataCoordinates::Degree );
             writer.writeCharacters( QString::number( lat, 'f', 10 ) );
+
+            if ( hasAltitude ) {
+                qreal alt = coordinates.altitude();
+                writer.writeCharacters( "," );
+                writer.writeCharacters( QString::number( alt, 'f', 2 ) );
         }
+        }
 
         writer.writeEndElement();
         writer.writeEndElement();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic