21 #include <QDomElement>
24 #include <QTreeWidgetItem>
25 #include <QXmlStreamWriter>
41 , iSatelliteCount( 0 )
46 QTreeWidgetItem::setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsDragEnabled );
55 , iSatelliteCount( 0 )
56 , fdDopHorizontal( 0.0 )
57 , fdDopVertical( 0.0 )
58 , fdDopPositional( 0.0 )
60 QTreeWidgetItem::setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsDragEnabled );
96 __qPointF -= _rqPointFScrPosition;
97 return( __qPointF.x()*__qPointF.x() + __qPointF.y()*__qPointF.y() <= 25 );
120 if( _rqDomElement.hasAttribute(
"longitude" ) && _rqDomElement.hasAttribute(
"longitude" ) )
123 _rqDomElement.attribute(
"latitude" ).toDouble(),
126 QString __qsTime = _rqDomElement.attribute(
"time" );
127 if( !__qsTime.isEmpty() )
129 qsFixType = _rqDomElement.attribute(
"fixtype" );
139 if( _rqDomElement.hasAttribute(
"lon" ) && _rqDomElement.hasAttribute(
"lat" ) )
141 QString __qsElevation = _rqDomElement.firstChildElement(
"ele" ).text();
144 _rqDomElement.attribute(
"lat" ).toDouble(),
145 __qsElevation.toDouble() );
147 QString __qsValue = _rqDomElement.firstChildElement(
"time" ).text();
148 if( !__qsValue.isEmpty() )
150 qsFixType = _rqDomElement.firstChildElement(
"fix" ).text();
151 __qsValue = _rqDomElement.firstChildElement(
"sat" ).text();
153 __qsValue = _rqDomElement.firstChildElement(
"hdop" ).text();
155 __qsValue = _rqDomElement.firstChildElement(
"vdop" ).text();
156 if( !__qsValue.isEmpty() )
fdDopVertical = __qsValue.toDouble();
157 __qsValue = _rqDomElement.firstChildElement(
"pdop" ).text();
165 _rqXmlStreamWriter.writeStartElement(
"Point" );
176 #if QT_VERSION < 0x040800
177 _rqXmlStreamWriter.writeAttribute(
"time", QDateTime::fromTime_t(
CDataTime::getTime() ).toUTC().toString( Qt::ISODate )+
"Z" );
179 _rqXmlStreamWriter.writeAttribute(
"time", QDateTime::fromTime_t(
CDataTime::getTime() ).toUTC().toString( Qt::ISODate ) );
183 _rqXmlStreamWriter.writeAttribute(
"fixtype",
qsFixType );
186 _rqXmlStreamWriter.writeAttribute(
"satcount", QString::number(
iSatelliteCount ) );
189 _rqXmlStreamWriter.writeAttribute(
"hdop", QString::number(
fdDopHorizontal,
'f', 3 ) );
192 _rqXmlStreamWriter.writeAttribute(
"vdop", QString::number(
fdDopVertical,
'f', 3 ) );
195 _rqXmlStreamWriter.writeAttribute(
"pdop", QString::number(
fdDopPositional,
'f', 3 ) );
197 _rqXmlStreamWriter.writeEndElement();
205 _rqXmlStreamWriter.writeStartElement(
"trkpt" );
212 _rqXmlStreamWriter.writeStartElement(
"ele" );
214 _rqXmlStreamWriter.writeEndElement();
219 _rqXmlStreamWriter.writeStartElement(
"time" );
220 #if QT_VERSION < 0x040800
221 _rqXmlStreamWriter.writeCharacters( QDateTime::fromTime_t(
CDataTime::getTime() ).toUTC().toString( Qt::ISODate )+
"Z" );
223 _rqXmlStreamWriter.writeCharacters( QDateTime::fromTime_t(
CDataTime::getTime() ).toUTC().toString( Qt::ISODate ) );
225 _rqXmlStreamWriter.writeEndElement();
230 _rqXmlStreamWriter.writeStartElement(
"fix" );
231 _rqXmlStreamWriter.writeCharacters(
qsFixType );
232 _rqXmlStreamWriter.writeEndElement();
237 _rqXmlStreamWriter.writeStartElement(
"sat" );
238 _rqXmlStreamWriter.writeCharacters( QString::number(
iSatelliteCount ) );
239 _rqXmlStreamWriter.writeEndElement();
244 _rqXmlStreamWriter.writeStartElement(
"hdop" );
245 _rqXmlStreamWriter.writeCharacters( QString::number(
fdDopHorizontal,
'f', 3 ) );
246 _rqXmlStreamWriter.writeEndElement();
251 _rqXmlStreamWriter.writeStartElement(
"vdop" );
252 _rqXmlStreamWriter.writeCharacters( QString::number(
fdDopVertical,
'f', 3 ) );
253 _rqXmlStreamWriter.writeEndElement();
258 _rqXmlStreamWriter.writeStartElement(
"pdop" );
259 _rqXmlStreamWriter.writeCharacters( QString::number(
fdDopPositional,
'f', 3 ) );
260 _rqXmlStreamWriter.writeEndElement();
263 _rqXmlStreamWriter.writeEndElement();
void setOverlayObjectSelected(COverlayObject *_poOverlayObject)
Sets the currently selected overlay object.
QRectF getDrawArea() const
Returns the viewport draw area.
QPointF toDrawPosition(const CDataPosition &_roGeoPosition) const
Converts the given (geographical) position [long,lat,elev] to chart draw point [px].
(Geographical) Position data [long,lat,elev]
double getLongitude() const
Returns this position's longitude, in degrees.
double getElevation() const
Returns this position's elevation, in meters.
double getLatitude() const
Returns this position's latitude, in degrees.
static const CDataPosition UNDEFINED
Specific value for an undefined position.
void setPosition(double _fdLongitude, double _fdLatitude, double _fdElevation=UNDEFINED_ELEVATION)
Sets new coordinates.
static constexpr double UNDEFINED_ELEVATION
Specific value for an undefined elevation.
void setTime(double _fdTime)
Sets the time, in seconds from Unix epoch.
double getTime() const
Returns this time's time, in seconds from Unix epoch.
static constexpr double UNDEFINED_TIME
Specific value for an undefined time.
Dilution-of-Precision (DOP) data.
static const double UNDEFINED_VALUE
Specific value for an undefined component.
void switchView(EView eView)
Displays the requested container/item details (switching to the appropriate widget)
@ TRACK_POINT
Track point.
void switchView(EView eView)
Displays the requested overlay (switching to the appropriate tab)
void setOverlayObject(COverlayObject *_poOverlayObject)
Sets the overlay object to be displayed (and refreshes the underlying widget)
QString qsName
Object name.
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
bool bVisible
Global (marker) visibility status.
int getVisibility() const
Returns the global (coded) visibility status.
@ VISIBLE
Track visibility status.
@ SELECT
Track selection status.
virtual void refreshContent()
Refreshes the content of the underlying widget.
void parseQVCT(const QDomElement &_rqDomElement)
Retrieves this object's content from the given QVCT source (file)
void toggleMultiSelected()
Toggles this track point's selection status.
CTrackPoint(const QString &_rqsName)
void parseGPX(const QDomElement &_rqDomElement)
Retrieves this object's content from the given GPX source (file)
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter) const
Stores this object's content to the given QVCT destination (file)
void dumpGPX(QXmlStreamWriter &_rqXmlStreamWriter) const
Stores this object's content to the given GPX destination (file)
QString qsFixType
Track point's fix type.
int iSatelliteCount
Track point's satellites count.
double fdDopHorizontal
Track point's horizontal Dilution-of-Precision (HDOP)
double fdDopVertical
Track point's vertical Dilution-of-Precision (VDOP)
virtual bool matchScrPosition(const CChart *_poChart, const QPointF &_rqPointFScrPosition) const
Returns whether this point matches the given screen position.
virtual void showDetail()
Displays this object's details (in the appropriate widget/view)
double fdDopPositional
Track point's positional Dilution-of-Precision (PDOP)
static COverlayDetailView * useOverlayDetailView()
static CTrackPointDetailView * useTrackPointDetailView()
static COverlayListView * useOverlayListView()
static CChartTable * useChartTable()