File indexing completed on 2024-05-12 03:51:44

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Niko Sams <niko.sams@gmail.com>
0004 //
0005 
0006 #include "GPXeleTagHandler.h"
0007 
0008 #include "MarbleDebug.h"
0009 
0010 #include "GPXElementDictionary.h"
0011 #include "GeoParser.h"
0012 #include "GeoDataPoint.h"
0013 #include "GeoDataTrack.h"
0014 
0015 namespace Marble
0016 {
0017 namespace gpx
0018 {
0019 GPX_DEFINE_TAG_HANDLER(ele)
0020 
0021 GeoNode* GPXeleTagHandler::parse(GeoParser& parser) const
0022 {
0023     Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1String(gpxTag_ele)));
0024 
0025     GeoStackItem parentItem = parser.parentElement();
0026     if (parentItem.represents(gpxTag_trkpt))
0027     {
0028         GeoDataTrack* track = parentItem.nodeAs<GeoDataTrack>();
0029         track->appendAltitude( parser.readElementText().trimmed().toDouble() );
0030         return track;
0031     }
0032     return nullptr;
0033 }
0034 
0035 } // namespace gpx
0036 
0037 } // namespace Marble