bool QLandmarkFileHandlerGpx::writeGpx() { QString nsGpx = "http://www.topografix.com/GPX/1/1"; QString nsXsi = "http://www.w3.org/2001/XMLSchema-instance"; if (!m_nsPrefix.isEmpty()) m_ns = nsGpx; else m_ns = ""; m_writer->writeStartDocument(); if (m_nsPrefix.isEmpty()) m_writer->writeDefaultNamespace(nsGpx); else { m_writer->writeNamespace(nsGpx, m_nsPrefix); } m_writer->writeStartElement(m_ns, "gpx"); m_writer->writeAttribute("version", "1.1"); m_writer->writeAttribute("creator", "Qt Mobility Location API"); m_writer->writeNamespace(nsXsi, "xsi"); m_writer->writeAttribute(nsXsi, "schemaLocation", "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"); for (int i = 0; i < m_waypoints.size(); ++i) { if (m_cancel && (*m_cancel == true)) { m_errorCode = QLandmarkManager::CancelError; m_errorString = "Export of gpx file was canceled"; return false; } if (!writeWaypoint(m_waypoints.at(i), "wpt")) return false; } for (int i = 0; i < m_routes.size(); ++i) { if (!writeRoute(m_routes.at(i))) return false; } for (int i = 0; i < m_tracks.size(); ++i) { if (!writeTrack(m_tracks.at(i))) return false; } m_writer->writeEndElement(); m_writer->writeEndDocument(); return true; }
/** *This function write route to .xml file. */ void GPSData::writeRouteXml(QIODevice *device, int round) { xmlwriter.setDevice(device); //Write temp xml (routetemp.xml). if ( round == 0 ) { xmlwriter.writeStartElement("Point"); xmlwriter.writeAttribute("Latitude", QString::number(latitude)); xmlwriter.writeAttribute("Longitude", QString::number(longitude)); xmlwriter.writeAttribute("Altitude", QString::number(altitude)); xmlwriter.writeAttribute("Speed", QString::number(speed)); xmlwriter.writeEndElement();//Point } //Write final xml (route.xml). else if ( round == 1 ) { xmlwriter.writeStartDocument(); xmlwriter.writeStartElement("Route"); xmlwriter.writeAttribute("Start-time", routeStartTime); xmlwriter.writeAttribute("Stop-time", routeStopTime); xmlwriter.writeAttribute("Points", QString::number(roundCounter)); //Open temp xml and read points QFile tempFile("routetemp.xml"); if (!tempFile.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream readRoute(&tempFile); QTextStream writeRoute(device); writeRoute << readRoute.readLine(); tempFile.close();//Close temp xml xmlwriter.writeEndElement();//Route xmlwriter.writeEndDocument(); } }