/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \example logfilepositionsource \title Log File Position Source (C++) \ingroup qtpositioning-examples \brief The Logfile Position Source shows how to create and work with a custom NMEA position source, for platforms without GPS. The data is read from a file which has positional data in NMEA format. The resulting time and position information is then displayed to the screen as simple text in date/time and latitude/longitude format. This example class reads position data from a text file, \e log.txt. The file specifies position data using a simple text format: it contains one position update per line, where each line contains a date/time, a latitude and a longitude, separated by spaces. The date/time is in ISO 8601 format and the latitude and longitude are in degrees decimal format. Here is an excerpt from \e log.txt: \code 2009-08-24T22:25:01 -27.576082 153.092415 2009-08-24T22:25:02 -27.576223 153.092530 2009-08-24T22:25:03 -27.576364 153.092648 \endcode The class reads this data and distributes it via the \l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal. Here is the definition of the \c LogFilePositionSource class: \quotefromfile logfilepositionsource/logfilepositionsource.h \skipto class LogFilePositionSource \printuntil }; The main methods overrided by the subclass are: \list \li \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()}: called by client applications to start regular position updates. \li \l{QGeoPositionInfoSource::stopUpdates()}{stopUpdates()}: called by client applications to stop regular position updates. \li \l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()}: called by client applications to request a single update, with a specified timeout. \endlist When a position update is available, the subclass emits the \l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal. Here are the key methods in the class implementation: \quotefromfile logfilepositionsource/logfilepositionsource.cpp \skipto LogFilePositionSource::LogFilePositionSource \printuntil /^\}/ \skipto LogFilePositionSource::startUpdates \printuntil /^\}/ \skipto LogFilePositionSource::stopUpdates \printuntil /^\}/ \skipto LogFilePositionSource::requestUpdate \printuntil /^\}/ \printuntil LogFilePositionSource::readNextPosition \printuntil /^\}/ */