diff options
Diffstat (limited to 'src/positioning/doc')
20 files changed, 0 insertions, 1870 deletions
diff --git a/src/positioning/doc/images/permissions.png b/src/positioning/doc/images/permissions.png Binary files differdeleted file mode 100644 index bd8c4850..00000000 --- a/src/positioning/doc/images/permissions.png +++ /dev/null diff --git a/src/positioning/doc/qtpositioning.qdocconf b/src/positioning/doc/qtpositioning.qdocconf deleted file mode 100644 index 67e5837a..00000000 --- a/src/positioning/doc/qtpositioning.qdocconf +++ /dev/null @@ -1,56 +0,0 @@ -include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) -include($QT_INSTALL_DOCS/config/exampleurl-qtlocation.qdocconf) - -project = QtPositioning -description = Qt Positioning Reference Documentation -version = $QT_VERSION - - - -qhp.projects = QtPositioning - -qhp.QtPositioning.file = qtpositioning.qhp -qhp.QtPositioning.namespace = org.qt-project.qtpositioning.$QT_VERSION_TAG -qhp.QtPositioning.virtualFolder = qtpositioning -qhp.QtPositioning.indexTitle = Qt Positioning -qhp.QtPositioning.indexRoot = - -qhp.QtPositioning.filterAttributes = qtpositioning $QT_VERSION qtrefdoc -qhp.QtPositioning.customFilters.Qt.name = QtPositioning $QT_VERSION -qhp.QtPositioning.customFilters.Qt.filterAttributes = qtpositioning $QT_VERSION -qhp.QtPositioning.subprojects = classes qml examples -qhp.QtPositioning.subprojects.classes.title = C++ Classes -qhp.QtPositioning.subprojects.classes.indexTitle = Qt Positioning C++ Classes -qhp.QtPositioning.subprojects.classes.selectors = class fake:headerfile -qhp.QtPositioning.subprojects.classes.sortPages = true -qhp.QtPositioning.subprojects.qml.title = QML Types -qhp.QtPositioning.subprojects.qml.indexTitle = Qt Positioning QML Types -qhp.QtPositioning.subprojects.qml.selectors = qmlclass -qhp.QtPositioning.subprojects.qml.sortPages = true -qhp.QtPositioning.subprojects.examples.title = Qt Positioning Examples -qhp.QtPositioning.subprojects.examples.indexTitle = Qt Positioning Examples -qhp.QtPositioning.subprojects.examples.selectors = fake:example - -tagfile = ../../../doc/qtpositioning/qtpositioning.tags - -depends += qtcore qtdoc qtquick qtqml qtnetwork qtqmlxmllistmodel qmake qtcmake - -headerdirs += .. \ - ../../positioningquick - -sourcedirs += .. \ - ../../positioningquick - -examplesinstallpath = positioning - -exampledirs += ../../../examples/positioning \ - snippets/ - - -imagedirs += images - -navigation.landingpage = "Qt Positioning" -navigation.cppclassespage = "Qt Positioning C++ Classes" -navigation.qmltypespage = "Qt Positioning QML Types" - -manifestmeta.thumbnail.names += "QtPositioning/Log File*" diff --git a/src/positioning/doc/snippets/cpp/cpp.pro b/src/positioning/doc/snippets/cpp/cpp.pro deleted file mode 100644 index 47401e90..00000000 --- a/src/positioning/doc/snippets/cpp/cpp.pro +++ /dev/null @@ -1,8 +0,0 @@ -TEMPLATE = app -TARGET = positioning_cppsnippet -QT = core positioning - -SOURCES += \ - main.cpp \ - cppqml.cpp - diff --git a/src/positioning/doc/snippets/cpp/cppqml.cpp b/src/positioning/doc/snippets/cpp/cppqml.cpp deleted file mode 100644 index c3d0139e..00000000 --- a/src/positioning/doc/snippets/cpp/cppqml.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtCore/QObject> -#include <QtCore/QDebug> -#include <QtCore/QVariant> -#include <QtPositioning/QGeoAddress> -#include <QtPositioning/QGeoLocation> -#include <QtPositioning/QGeoCircle> -#include <QtPositioning/QGeoAreaMonitorSource> - -void cppQmlInterface(QObject *qmlObject) -{ - //! [Address get] - QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>(); - //! [Address get] - - //! [Address set] - qmlObject->setProperty("address", QVariant::fromValue(geoAddress)); - //! [Address set] - - //! [Location get] - QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>(); - //! [Location get] - - //! [Location set] - qmlObject->setProperty("location", QVariant::fromValue(geoLocation)); - //! [Location set] -} - -class MyClass : public QObject -{ - Q_OBJECT -//! [BigBen] -public: - MyClass() : QObject() - { - QGeoAreaMonitorSource *monitor = QGeoAreaMonitorSource::createDefaultSource(this); - if (monitor) { - connect(monitor, SIGNAL(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo)), - this, SLOT(areaEntered(QGeoAreaMonitorInfo,QGeoPositionInfo))); - connect(monitor, SIGNAL(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo)), - this, SLOT(areaExited(QGeoAreaMonitorInfo,QGeoPositionInfo))); - - QGeoAreaMonitorInfo bigBen("Big Ben"); - QGeoCoordinate position(51.50104, -0.124632); - bigBen.setArea(QGeoCircle(position, 100)); - - monitor->startMonitoring(bigBen); - - } else { - qDebug() << "Could not create default area monitor"; - } - } - -public Q_SLOTS: - void areaEntered(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update) - { - Q_UNUSED(mon); - - qDebug() << "Now within 100 meters, current position is" << update.coordinate(); - } - - void areaExited(const QGeoAreaMonitorInfo &mon, const QGeoPositionInfo &update) - { - Q_UNUSED(mon); - - qDebug() << "No longer within 100 meters, current position is" << update.coordinate(); - } -//! [BigBen] -}; diff --git a/src/positioning/doc/snippets/cpp/main.cpp b/src/positioning/doc/snippets/cpp/main.cpp deleted file mode 100644 index 285bf6af..00000000 --- a/src/positioning/doc/snippets/cpp/main.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPositioning module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -int main(int /*argc*/, char ** /*argv*/) -{ - return 0; -} - diff --git a/src/positioning/doc/snippets/doc_src_qtpositioning.qml b/src/positioning/doc/snippets/doc_src_qtpositioning.qml deleted file mode 100644 index f6d15572..00000000 --- a/src/positioning/doc/snippets/doc_src_qtpositioning.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** 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:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [import] -import QtPositioning -//! [import] - -Item { -} - diff --git a/src/positioning/doc/snippets/snippets.pro b/src/positioning/doc/snippets/snippets.pro deleted file mode 100644 index 451d1c36..00000000 --- a/src/positioning/doc/snippets/snippets.pro +++ /dev/null @@ -1,2 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS += cpp diff --git a/src/positioning/doc/src/cpp-position.qdoc b/src/positioning/doc/src/cpp-position.qdoc deleted file mode 100644 index a380f105..00000000 --- a/src/positioning/doc/src/cpp-position.qdoc +++ /dev/null @@ -1,194 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -/*! -\page location-positioning-cpp.html - -\title Positioning (C++) - -\brief The Location Positioning API enables location positioning by means of -GPS or an NMEA data source. - -\section1 Positioning - -The Positioning component of the Qt Location API is about the geographical -position, size, and address of some place. Positioning contains a -\l QGeoCoordinate class, containing latitude, longitude and altitude in meters. -\l QGeoLocation contains a \l QGeoCoordinate plus address and size information -(a bounding box) so that positions can be more than mathematical points. -Movement into or out of the defined bounding box areas can be monitored. The API -also allows the developer to control the source of the positional information -as well. - -Location data involves a precisely specified position on the Earth's -surface \unicode {0x2014} as provided by a latitude-longitude coordinate -\unicode {0x2014} along with associated data, such as: - - \list - \li The date and time at which the position was reported - \li The velocity of the device that reported the position - \li The altitude of the reported position (height above sea level) - \li The bearing of the device in degrees, relative to true north - \endlist - -This data can be extracted through a variety of methods. One of the most -well known methods of positioning is GPS (Global Positioning System), a -publicly available system that uses radiowave signals received from -Earth-orbiting satellites to calculate the precise position and time of -the receiver. Another popular method is 'Cell Identifier Positioning', which uses -the cell identifier of the cell site that is currently serving the receiving -device to calculate its approximate location. These and other positioning -methods can all be used with the Location API; the only requirement for a -location data source within the API is that it provides a -latitude-longitude coordinate with a date/time value, with the option of -providing the other attributes listed above. - - -Location data sources are created by subclassing \l QGeoPositionInfoSource and -providing \l QGeoPositionInfo objects through the -\l {QGeoPositionInfoSource::positionUpdated()} signal. Clients that require -location data can connect to the -\l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal and -call \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()} or -\l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()} to trigger the -distribution of location data. The location data distribution can be stopped by -calling the \l {QGeoPositionInfoSource::stopUpdates()}{stopUpdates()} function. - -A default position source may be available on some platforms. Call -\l {QGeoPositionInfoSource::createDefaultSource()} to create an instance of the -default position source. The method returns \c nullptr if no default source is -available for the platform. - -If a problem occurs with access to the information source then an -\l {QGeoPositionInfoSource::errorOccurred()}{errorOccurred()} signal is emitted. - -The \l QGeoAreaMonitorSource class enables client applications to be notified -when the receiving device has moved into or out of a particular area, as -specified by a coordinate and radius. If the platform provides built-in support -for area monitoring, the \l {QGeoAreaMonitorSource::createDefaultSource()} -method returns an instance of the default area monitor. - -Satellite information can also be distributed through the -\l QGeoSatelliteInfoSource class. Call -\l {QGeoSatelliteInfoSource::createDefaultSource()} to create an instance of the -default satellite data source for the platform if one is available. -Alternatively, clients can subclass it to provide a custom satellite data -source. - - - -\section2 Requesting Location Data from Data Sources - -To receive data from a source, connect to its -\l{QGeoPositionInfoSource::positionUpdated()}{positionUpdated()} signal, -then call either \l{QGeoPositionInfoSource::startUpdates()}{startUpdates()} -or \l{QGeoPositionInfoSource::requestUpdate()}{requestUpdate()} to begin. - -Here is an example of a client that receives data from the default location -data source, as returned by \l {QGeoPositionInfoSource::createDefaultSource()}: - -\code -class MyClass : public QObject -{ - Q_OBJECT -public: - MyClass(QObject *parent = 0) - : QObject(parent) - { - QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this); - if (source) { - connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)), - this, SLOT(positionUpdated(QGeoPositionInfo))); - source->startUpdates(); - } - } - -private slots: - void positionUpdated(const QGeoPositionInfo &info) - { - qDebug() << "Position updated:" << info; - } -}; - -\endcode - -\section2 Controlling Aspects of Data Sources - -The \l {QGeoPositionInfoSource::setUpdateInterval()} method can be used to -control the rate at which position updates are received. For example, if -the client application only requires updates once every 30 seconds, it can -call \c setUpdateInterval(30000). If no update interval is set, or -\l {QGeoPositionInfoSource::}{setUpdateInterval()} is called with a value of 0, -the source uses a default interval or some other internal logic to determine -when updates should be provided. - -\l {QGeoPositionInfoSource::setPreferredPositioningMethods()} enables client -applications to request that a certain type of positioning method be used. -For example, if the application prefers to use only satellite positioning, -which offers fairly precise outdoor positioning but can be a heavy user of -power resources, it can call this method with the -\l {QGeoPositionInfoSource::SatellitePositioningMethods} value. However, this -method should only be used in specialized client applications; in most -cases, the default positioning methods should not be changed, as a source -may internally use a variety of positioning methods that can be useful to -the application. - -\section2 NMEA Data - -\l {http://en.wikipedia.org/wiki/NMEA_0183}{NMEA} is a common text-based -protocol for specifying navigational data. For convenience, the -\l QNmeaPositionInfoSource is provided to enable client applications to read -and distribute NMEA data in either real-time mode (for example, when -streaming from a GPS device) or simulation mode (for example, when reading -from a NMEA log file). In simulation mode, the source will emit updates -according to the time stamp of each NMEA sentence to produce a "replay" -of the recorded data. - -Generally, the capabilities provided by the default position source as -returned by \l {QGeoPositionInfoSource::createDefaultSource()}, along with the -\l QNmeaPositionInfoSource class, are sufficient for retrieving location -data. However, in some cases developers may wish to write their own custom -location data source. - -The \l {Log File Position Source (C++)} example demonstrates how to subclass -\l QGeoPositionInfoSource to create a custom positioning source. - - -\section1 Examples - -\section3 \b{Flickr Example} - -The \l{GeoFlickr QML}{Flickr Example} uses the current location to download thumbnail -images from Flickr relevant to the current location. - - - -\section1 Positioning Classes - -\annotatedlist QtPositioning-positioning - -*/ diff --git a/src/positioning/doc/src/cpp-qml-positioning.qdoc b/src/positioning/doc/src/cpp-qml-positioning.qdoc deleted file mode 100644 index f1044306..00000000 --- a/src/positioning/doc/src/cpp-qml-positioning.qdoc +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page positioning-cpp-qml.html -\title Interfaces between C++ and QML Code in Qt Positioning - -\brief Describes the methods used to exchange position data between C++ and QML -code. - -\section1 Overview - -Qt Positioning utilizes two methods to simplify exchange of position data -between C++ and QML code. - -\target Cpp_value_integration_positioning -\section1 Direct C++ Value Integration in QtPositioning - -Starting with Qt 5.5, it has become much easier to integrate non-QObject based -data types into QML. This is achieved by adding \l Q_GADGET support to \l QtQml. -The macro converts classes into a light-weight version of a \l QObject without -the required \l QObject inheritance. At the same time, it retains the reflection -capabilities of \l QMetaObject. As a result, they can be directly exposed to -QML. - -A significant number of Position related data types were converted to -\l {Q_GADGET}s. They retain their API and value type character but have become -introspectable via \l QMetaObject. - -The \l QML_ANONYMOUS macro is used to expose these types to the QML environment. -See the \l QQmlEngine documentation for more details and the full list of -available macros. - -The classes, however, are not directly extended with this macro, because we do -not want Qt Positioning to depend on \l QtQml. So a helper class is created for -each of them, and the \l QML_FOREIGN macro is used: - -\code -struct QGeoCoordinateForeign -{ - Q_GADGET - QML_FOREIGN(QGeoCoordinate) - QML_ANONYMOUS - QML_ADDED_IN_VERSION(5, 0) -}; -\endcode - -The above registration of Positioning types is automatically done once by the -QtPositioning QML plugin. - -\section1 QVariant Based integration - -This section provides information on how to integrate QGeoAddress and -QGeoLocation. - -\section2 Address - QGeoAddress - -The \l {QtPositioning::Address::address} {Address.address} property is used to -provide an interface between C++ and QML code. First a pointer to an -\l {QtPositioning::}{Address} object must be obtained from C++, then the -\l {QObject::}{property()} and \l {QObject::}{setProperty()} functions must be -used to get and set the \c address property. - -The following piece of code gets the \l QGeoAddress object from C++: - -\snippet cpp/cppqml.cpp Address get - -The following piece of code sets the address property of the QML object based -on a \l QGeoAddress object from C++: - -\snippet cpp/cppqml.cpp Address set - - -\section2 Location - QGeoLocation -The \l {Location::location} {Location.location} property is used to provide an -interface between C++ and QML code. First a pointer to a \l Location object -must be obtained from C++, then the \l {QObject::}{property()} and -\l {QObject::}{setProperty()} functions must be used to get and set the -\c location property. - -The following piece of code gets the \l QGeoLocation object from C++: - -\snippet cpp/cppqml.cpp Location get - -The following piece of code sets the location property of the QML object based -on a \l QGeoLocation object from C++: - -\snippet cpp/cppqml.cpp Location set - -*/ diff --git a/src/positioning/doc/src/external-resources.qdoc b/src/positioning/doc/src/external-resources.qdoc deleted file mode 100644 index 948249d9..00000000 --- a/src/positioning/doc/src/external-resources.qdoc +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\externalpage https://developer.android.com/about/versions/oreo/background-location-limits -\title Background Location Limits -*/ - -/*! -\externalpage https://developer.android.com/guide/components/foreground-services -\title Foreground Service -*/ - -/*! -\externalpage https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION -\title ACCESS_BACKGROUND_LOCATION -*/ - -/*! -\externalpage https://developer.android.com/training/location/background -\title Access Location in the Background -*/ - -/*! -\externalpage https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home -\title GeoClue service -*/ - -/*! -\externalpage https://www.freedesktop.org/software/geoclue/docs/gdbus-org.freedesktop.GeoClue2.Client.html#gdbus-property-org-freedesktop-GeoClue2-Client.DesktopId -\title GeoClue DesktopId property -*/ - -/*! -\externalpage https://gypsy.freedesktop.org/wiki/ -\title Gypsy daemon -*/ diff --git a/src/positioning/doc/src/plugins/geoclue2.qdoc b/src/positioning/doc/src/plugins/geoclue2.qdoc deleted file mode 100644 index 13ba2d2d..00000000 --- a/src/positioning/doc/src/plugins/geoclue2.qdoc +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-geoclue2.html -\title Qt Positioning GeoClue v2 plugin -\ingroup QtPositioning-plugins - -\brief Uses the GeoClue v2 library to provide positioning updates - -\section1 Overview - -This plugin is an interface to the \l {GeoClue service}{GeoClue v2} library. -It requires this library to be installed on the system to function. - -The plugin uses D-Bus to establish communication with the GeoClue v2 D-Bus -service and to provide positioning information. - -The plugin can be used to receive only the positioning information. -It \e {does not} provide satellite information. - -The plugin can be loaded by using the provider name \b geoclue2. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the geoclue2 -plugin. - -\table -\header - \li Parameter - \li Description -\row - \li desktopId - \li The \l {GeoClue DesktopId property}{Desktop Id} property used by the - D-Bus service. If the parameter is not specified, the application name - provided by \l QCoreApplication::applicationName() is used. -\endtable - -\section1 Usage example - -The following examples show how to create a \b geoclue2 PositionSource from -C++ and QML. - -\section2 QML - -\code -PositionSource { - name: "geoclue2" - PluginParameter { name: "desktopId"; value: "SomeIdentifierString" } -} -\endcode - -\section2 C++ - -\code -QVariantMap params; -params["desktopId"] = "SomeIdentifierString"; -QGeoPositionInfoSource *positionSource = QGeoPositionInfoSource::createSource("geoclue2", params, this); -\endcode - -*/ diff --git a/src/positioning/doc/src/plugins/gypsy.qdoc b/src/positioning/doc/src/plugins/gypsy.qdoc deleted file mode 100644 index 9b59314a..00000000 --- a/src/positioning/doc/src/plugins/gypsy.qdoc +++ /dev/null @@ -1,115 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-gypsy.html -\title Qt Positioning Gypsy plugin -\ingroup QtPositioning-plugins - -\brief Uses the Gypsy daemon to provide satellite information - -\section1 Overview - -The plugin is an interface to the \l {Gypsy daemon}. It requires the daemon -to be installed and running on the system to function. - -The plugin uses D-Bus and GLib to connect to GPS device and provide satellite -information. - -Currently the plugin \e {does not} provide positioning information. - -The plugin can be loaded using provider name \b gypsy. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the gypsy -plugin. - -\table -\header - \li Parameter - \li Description -\row - \li deviceName - \li The name of the device (or path to the device file) that will be used - to provide satellite information. The typical values can be - \c {/dev/ttyUSB0} or \c {/dev/ttyACM0}. -\row - \li gconfKey - \li The key that will be used to extract device name from the GConf - configuration system. -\endtable - -The plugin supports two ways of specifying the device name: -\list - \li Specify the device name directly with the \e deviceName plugin - parameter. - \li Specify the configuration key using \e gconfKey plugin parameter and - extract the device name from the GConf configuration system. This - approach is useful when the device name is already specified for some - other GConf-based application. -\endlist - -By default, when none of the parameters is specified, the plugin will try to -extract the device name from the GConf configuration system using the following -hardcoded key: - -\badcode -/apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice -\endcode - -\section2 Using GConf to set parameters - -To specify a value for a key in the GConf configuration system, use -\e {gconftool-2} as follows: - -\badcode -gconftool-2 -t string -s /apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice /dev/ttyUSB0 -\endcode - -\section1 Usage example - -The following examples show how to create a \b gypsy satellite info source -from C++. - -Specifying device name directly: - -\code -QVariantMap parameters; -parameters["deviceName"] = "/dev/ttyACM0"; -QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createSource("gypsy", parameters, this); -\endcode - -Using GConf key: - -\code -QVariantMap parameters; -parameters["gconfKey"] = "/apps/myapp/mykey"; -QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createSource("gypsy", parameters, this); -\endcode - -*/ diff --git a/src/positioning/doc/src/plugins/nmea.qdoc b/src/positioning/doc/src/plugins/nmea.qdoc deleted file mode 100644 index 00a50f0e..00000000 --- a/src/positioning/doc/src/plugins/nmea.qdoc +++ /dev/null @@ -1,201 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page position-plugin-nmea.html -\title Qt Positioning NMEA plugin -\ingroup QtPositioning-plugins - -\brief Reads the NMEA stream to provide position updates. - -\section1 Overview - -Included with Qt Positioning is a position plugin which parses NMEA sentences -into position updates. This plugin can use serial port, socket or file as a -source. - -This plugin can be loaded by using the provider name \b nmea. - -\section1 Parameters - -The following table lists parameters that \e can be passed to the nmea plugin. - -\table -\header - \li Parameter - \li Description -\row - \li nmea.source - \li The source that will be used to get NMEA data. -\row - \li nmea.satellite_info_simulation_interval - \li The interval for reading satellite information data from the file in - simulation mode. -\endtable - -Different sources require different ways of providing the data. The following -table lists different ways of providing \c {nmea.source} parameter for socket, -serial port and file inputs. - -\table -\header - \li Scheme - \li Example - \li Description -\row - \li socket://hostname:port - \li \c {socket://localhost:12345} - \li Use \b {socket:} keyword to specify that you want to get the nmea data - from the socket. A TCP socket will be created, which will try to connect - to host \c hostname using port \c port. Upon successful connection - a text NMEA stream is expected to be received from the server. -\row - \li {1, 3} serial:portname - \li \c {serial:/dev/ttyUSB0} - \li {1, 3} Use \b {serial:} keyword to specify that you want to get the nmea - data from the serial port. The plugin will try to establish a connection - to port \c portname with baudrate = 4800 Bd. Upon successful connection - a text NMEA stream is expected to be received from the serial port. - If you use \b {serial:} without any port name, the plugin will try to - find one of the well known serial devices using vendor identifier. Note - however that this is not a recommended way of using the serial port - connection, as the list of well-known devices is small and most probably - does not include your hardware. -\row - \li \c {serial:COM1} -\row - \li \c {serial:} -\row - \li filepath - \li \c {/home/user/nmealog.txt} - \li {1, 2} Use \b {file:///} or just full file path to specify a path to a - local file. -\row - \li file:///filepath - \li \c {file:///home/user/nmealog.txt} -\row - \li qrc:///filepath - \li \c {qrc:///nmealog.txt} - \li Use \b {qrc:///} prefix to specify a path to a file in the application - resources. -\endtable - -\note If \c {nmea.source} parameter is not specified, the plugin will try to -locate one of the well-known serial devices (as if \c {nmea.source = serial:} -was specified). - -\section1 Position source usage example - -The following examples show how to create a \b nmea PositionSource -using different data sources. - -\section2 QML - -\code -// text file -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "qrc:///nmealog.txt" } -} - -// socket -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "socket://localhost:22222" } -} - -// serial port -PositionSource { - name: "nmea" - PluginParameter { name: "nmea.source"; value: "serial:/dev/ttyACM0" } -} -\endcode - -\section2 C++ - -\code -// text file -QVariantMap params; -params["nmea.source"] = "qrc:///nmealog.txt"; -QGeoPositionInfoSource *textPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); - -// socket -params["nmea.source"] = "socket://localhost:22222"; -QGeoPositionInfoSource *socketPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); - -// serial port -params["nmea.source"] = "serial:/dev/ttyACM0"; -QGeoPositionInfoSource *serialPositionSource = QGeoPositionInfoSource::createSource("nmea", params, this); -\endcode - -\note Once a PositionSource is created, it can't be reconfigured to use other -type of source data. - -\section1 Satellite information source usage example - -Apart from the position information, \b nmea plugin is also capable of providing -satellite information. For now it does not have any QML object, but can be -created directly from C++ code. - -\code -// serial port -QVariantMap parameters; -parameters["nmea.source"] = "serial:/dev/ttyUSB0"; -QGeoSatelliteInfoSource *serialSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); - -// socket -parameters["nmea.source"] = "socket://localhost:22222"; -QGeoSatelliteInfoSource *socketSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); -\endcode - -If you want to use \l QGeoSatelliteInfoSource to read file with NMEA stream, you -can also use additional parameter \c "nmea.satellite_info_simulation_interval". -This parameter is used to specify the playback rate (in milliseconds) for the -satellite info messages. The minimum allowed frequency is specified by -\l {QGeoSatelliteInfoSource::}{minimumUpdateInterval()}. If you specify a -smaller value, it will be ignored. If no value is specified, the default value -is \c {qMax(100, minimumUpdateInterval())}. -At runtime \l {QNmeaSatelliteInfoSource::setBackendProperty()} method can be -used to update this parameter. - -\code -// file -QVariantMap parameters; -parameters["nmea.source"] = "qrc:///nmealog.txt"; -parameters["nmea.satellite_info_simulation_interval"] = 1000; -QGeoSatelliteInfoSource *fileSource = QGeoSatelliteInfoSource::createSource("nmea", parameters, this); -\endcode - -This parameter is not applicable to position source because NMEA protocol -already has timestamps in position messages. These timestamps are used to -simulate the correct message rate while using \l QGeoPositionInfoSource with -file as a data source. - -\note Once a \l QGeoSatelliteInfoSource is created, it can't be reconfigured to -use other type of source data. - -*/ diff --git a/src/positioning/doc/src/qml-position.qdoc b/src/positioning/doc/src/qml-position.qdoc deleted file mode 100644 index 27e55583..00000000 --- a/src/positioning/doc/src/qml-position.qdoc +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ - -/*! -\page location-positioning-qml.html - -\title Positioning (QML) - -\brief The Location Positioning API enables location positioning by means of -GPS or an NMEA data source. - -\section1 Location Positioning - -Location data involves a precisely specified position on the Earth's -surface \unicode {0x2014} as provided by a latitude-longitude coordinate -\unicode {0x2014} along with associated data, such as: - - \list - \li The date and time at which the position was reported - \li The velocity of the device that reported the position - \li The altitude of the reported position (height above sea level) - \li The bearing of the device in degrees, relative to true north - \endlist - -For more information see -\l {http://en.wikipedia.org/wiki/Geographic_coordinate}{Geographic Coordinate}. - -This data can be extracted through a variety of methods. One of the most -well known methods of positioning is GPS (Global Positioning System), a -publicly available system that uses radiowave signals received from -Earth-orbiting satellites to calculate the precise position and time of -the receiver. Another popular method is 'Cell Identifier Positioning', which uses -the cell identifier of the cell site that is currently serving the receiving -device to calculate its approximate location. These and other positioning -methods can all be used with the Location API; the only requirement for a -location data source within the API is that it provides a -latitude-longitude coordinate with a date/time value, with the option of -providing the other attributes listed above. - -\section2 Coordinates - -The \l {coordinate} is a basic unit of geographical information. The -\l {coordinate} type has attributes to hold the \c {latitude}, -\c longitude and \c altitude. - -\section2 Positions - -The three dimensional position of an object such as a mobile device can be specified by giving -the latitude, longitude and altitude. That is the values held in the -\l {coordinate} type. Additionally for computation of future -positions we would like to know if the object is moving, what \l [QML] {Position::}{speed} it is -doing and what is the \l {Position::timestamp}{timestamp} of the last position data. Position -therefore includes values for the \l {Position::coordinate}{coordinate}, -\l {Position::speed}{speed} and a \l {Position::timestamp}{timestamp}. \l Position also takes -responsibility for validation of sensible values for these properties. These are exposed as -the \l {Position::latitudeValid}{latitudeValid}, \l {Position::longitudeValid}{longitudeValid}, -\l {Position::altitudeValid}{altitudeValid}, \l {Position::speedValid}{speedValid}, -\l {Position::horizontalAccuracyValid}{horizontalAccuracyValid}, and -\l {Position::verticalAccuracyValid}{verticalAccuracyValid} properties. - - -\section2 PositionSource Type - -We have a \l Position type, a \l {coordinate} type but where does the data come -from? Also it is a good idea to be able to indicate alternative sources. -Perhaps instead of directly picking up GPS satellites it might be desirable to -do some testing using a datafile. - -The \l PositionSource type provides the developer with control, within the -limits allowed by the platform, of the source of the geographical data. -\l PositionSource supports multiple plugins, including an -\l {Qt Positioning NMEA plugin}{NMEA} plugin. - -\l {http://en.wikipedia.org/wiki/NMEA}{NMEA} is a common text-based -protocol for specifying navigational data. The \l PositionSource -\l {Qt Positioning NMEA plugin}{NMEA} plugin supports multiple data sources, -including raw file or TCP socket. The source will emit updates according to the -time stamp of each NMEA sentence to produce a "replay" of the recorded data. - -See the \l {Qt Positioning NMEA plugin}{plugin description} for usage examples. - - -\section2 GeoFlickr Example - -The \l{GeoFlickr (QML)}{GeoFlickr Example} uses the \l PositionSource to -download thumbnail images from Flickr relevant to the current location. - -*/ diff --git a/src/positioning/doc/src/qt6-changes.qdoc b/src/positioning/doc/src/qt6-changes.qdoc deleted file mode 100644 index ab53823b..00000000 --- a/src/positioning/doc/src/qt6-changes.qdoc +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! - \page qtpositioning-changes-qt6.html - \title Changes to Qt Positioning - \ingroup changes-qt-5-to-6 - \brief Migrate Qt Positioning to Qt 6. - - Qt 6 is a result of the conscious effort to make the framework more - efficient and easy to use. - - We try to maintain binary and source compatibility for all the public - APIs in each release. But some changes were inevitable in an effort to - make Qt a better framework. - - In this topic we summarize those changes in Qt Positioning, and provide - guidance to handle them. - - \section1 Breaking public API changes - - This section contains information about API changes that break source - compatibility. - - \section2 Rename QGeoPolygon::path() - - The \c QGeoPolygon::path() and \c QGeoPolygon::setPath() methods are renamed - to \l QGeoPolygon::perimeter() and \l QGeoPolygon::setPerimeter() - respectively. On the QML side the \l QGeoPolygon::perimeter property can be - used without any changes. - - \section2 Use \l QGeoShape for \l QGeoLocation bounding area - - The \l QGeoLocation class and its \l [QML] Location QML counterpart are - updated to use \l QGeoShape instead of \l QGeoRectangle for a bounding area. - - \section3 C++ - - The \c QGeoLocation::boundingBox() and \c QGeoLocation::setBoundingBox() - are replaced by \l QGeoLocation::boundingShape() and - \l QGeoLocation::setBoundingShape() respectively. A \l QGeoShape object - is now used as an underlying data storage. - - \section3 QML - - The \c QGeoLocation::boundingBox property is replaced by - \l QGeoLocation::boundingShape. This property is available since - QtPositioning 6.2, so make sure to update the import version in the QML - files. - - \code - import QtPositioning 6.2 - \endcode - - \section2 Remove QGeoShape::extendShape() - - The \c QGeoShape::extendShape() method was deprecated in Qt 5.9 and finally - removed in Qt 6. Use \l QGeoRectangle::extendRectangle() and - \l QGeoCircle::extendCircle() if you need this functionality for these - classes. - - \section2 Rename signal error to errorOccurred - - In Qt 5 multiple Qt Positioning classes had the \c error() signal, which was - clashing with the \c error() method. In Qt 6 we renamed these signals to - \c errorOccurred(). Specifically: - - \list - - \li \c QGeoAreaMonitorSource::error() is renamed to - \l QGeoAreaMonitorSource::errorOccurred(). - - \li \c QGeoPositionInfoSource::error() is renamed to - \l QGeoPositionInfoSource::errorOccurred(). - - \li \c QGeoSatelliteInfoSource::error() is renamed to - \l QGeoSatelliteInfoSource::errorOccurred(). - - \endlist - - \section2 Remove update timeout signals - - In Qt 5 \c {QGeoPositionInfoSource::updateTimeout()} and - \c {QGeoSatelliteInfoSource::requestTimeout()} signals were used to notify - about the cases when the current position or satellite information could - not be retrieved within specified timeout. These signals were removed in - Qt 6. The \c {errorOccurred()} signals with the new error types are - used instead. Specifically: - - \list - - \li \l QGeoPositionInfoSource uses an \l {QGeoPositionInfoSource::} - {errorOccurred()} signal with a new - \l QGeoPositionInfoSource::UpdateTimeoutError error code. - - \li \l QGeoSatelliteInfoSource uses an \l {QGeoSatelliteInfoSource::} - {errorOccurred()} signal with a new - \l QGeoSatelliteInfoSource::UpdateTimeoutError error code. - - \endlist - - Same changes apply to \l [QML] PositionSource QML object. The - \c {PositionSource::updateTimeout()} signal is removed. - \l [QML] {PositionSource::sourceError} property with a - \c {PositionSource.UpdateTimeoutError} is used instead. - - \section2 Redesign NMEA support - - In Qt 5 we had a \b serialnmea positioning plugin and a \c nmeaSource - property in \l [QML] {PositionSource} object. - - The plugin provided access to NMEA streams via serial port, while the QML - object was responsible for reading NMEA stream from TCP socket or local - file. - - In Qt 6 we joined all these features in the plugin, which is now renamed to - \b nmea. It is now capable of working with all three NMEA data sources: - serial port, TCP socket and local file. See \l {Qt Positioning NMEA plugin} - {plugin description} for more details. - - The \c nmeaSource property of \l [QML] {PositionSource} object is now - removed. - - \section1 Other API changes - - This section contains API improvements that do not break source - compatibility. However they might have an impact on the application logic, - so it is still useful to know about them. - - \section2 Reset errors properly - - In Qt 5 the errors for \l QGeoAreaMonitorSource, \l QGeoPositionInfoSource - and \l QGeoSatelliteInfoSource classes were never reset. This behavior is - not logical, as calling \c {startUpdates()}, \c {startMonitoring()} or - \c {requestUpdates()} on one of these classes or their subclasses - effectively means starting a new work sessions, which means that we should - not care about previous errors. Since Qt 6 we reset the error to \c NoError - once one of the aforementioned methods is called. - - \section2 Add \l QGeoAddress::streetNumber - - The \l QGeoAddress class is extended with \l {QGeoAddress::}{streetNumber} - property, which holds the information about street number, building name, or - anything else that might be used to distinguish one address from another. - Use \l {QGeoAddress::}{streetNumber()} and \l {QGeoAddress::} - {setStreetNumber()} to access this property from C++ code. - - The \l QGeoAddress::street now holds only the street name. - - Same applies to \l [QML] {Address} QML counterpart. The \l [QML] - {Address::street} property is now used only for street name, while the - \l [QML] {Address::streetNumber} property is used for other important - address details. - - \section2 Add timeout argument to \l [QML] {PositionSource::update()} - - The \c timeout is specified in milliseconds. If the \c timeout is zero - (the default value), it defaults to a reasonable timeout period as - appropriate for the source. - - \section2 Refactor \l QGeoSatelliteInfo, \l QGeoPositionInfo and \l QGeoAreaMonitorInfo classes - - These classes now use \l QExplicitlySharedDataPointer in their - implementation. It means that the classes implement copy-on-write. It makes - them cheap to copy, so that they can be passed by value. - - Another improvement is the addition of support for the efficient move - operations. - - \section1 Changes in Qt Positioning plugin implementation - - This section provides information about the changes in plugin interface. - - In Qt 5 for we had two versions of plugin interface: - - \list - - \li \c QGeoPositionInfoSourceFactory which provided the basic features. - \li \c QGeoPositionInfoSourceFactoryV2 which extended the base class with - the possibility to provide custom parameters for the created objects. - - \endlist - - In Qt 6 we merged these two implementations into one, leaving only the - \l QGeoPositionInfoSourceFactory class. Its methods now allow to pass - custom parameters. - - \note The interface \e identifier is updated to reflect the major version - update. Use \c {"org.qt-project.qt.position.sourcefactory/6.0"} in your - Qt Positioning plugins. - - Here is an example of plugin class declaration: - - \code - class MyPlugin : public QObject, public QGeoPositionInfoSourceFactory - { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.qt.position.sourcefactory/6.0" - FILE "plugin.json") - Q_INTERFACES(QGeoPositionInfoSourceFactory) - - public: - QGeoPositionInfoSource *positionInfoSource(QObject *parent, const QVariantMap ¶meters) override; - QGeoSatelliteInfoSource *satelliteInfoSource(QObject *parent, const QVariantMap ¶meters) override; - QGeoAreaMonitorSource *areaMonitor(QObject *parent, const QVariantMap ¶meters) override; - }; - \endcode - -*/ diff --git a/src/positioning/doc/src/qtpositioning-android.qdoc b/src/positioning/doc/src/qtpositioning-android.qdoc deleted file mode 100644 index 1857574e..00000000 --- a/src/positioning/doc/src/qtpositioning-android.qdoc +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page qtpositioning-android.html -\inmodule QtPositioning -\title Qt Positioning on Android -\brief Notes on using Qt Positioning on Android - -\section1 Using Qt Positioning from Android Services - -Using Qt Positioning from a service requires several extra actions to be taken, -depending on the Android version. The sections below give more details on -these actions. - -\note Since Android 8 (API level 26), the OS limits how frequently an -application can retrieve the user's current location while running in the -background. The application will normally be able to receive location updates -only a few times each hour. For more information, see -\l {Background Location Limits}. - -\section2 Using Foreground Service - -Since Android 8 (API level 26), the background service can be killed by the -Android OS when the application goes to the background. This normally happens -after around a minute of running in the background. To keep the location service -running, the service should be implemented as a \l {Foreground Service}. Such -service shows a status bar notification, which cannot be dismissed until the -service is stopped or removed from the foreground. This allows the user to be -always aware of the important background activities. - -\note Since Android 9 (API level 28), foreground services require a special -\c FOREGROUND_SERVICE permission. See the Android documentation for more -details on implementing foreground services. - -\section2 Use Background Location Permission - -Since Android 10 (API level 29), the service \e must request the -\l {ACCESS_BACKGROUND_LOCATION} permission. It should be added to the -\c AndroidManifest.xml file as follows: - -\badcode -<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -\endcode - -\note Once the permission is added to \c {AndroidManifest.xml}, it is still -required to explicitly allow the constant access to the location services -for the application. To do it, one should navigate to \uicontrol Settings -> -\uicontrol {Apps}, select a proper application, open its permissions, and -specify the \uicontrol {Allow all the time} permission for Location -(see the screenshot below). - -\image permissions.png - -Check \l {Access Location in the Background} Android documentation for more -details. - -*/ diff --git a/src/positioning/doc/src/qtpositioning-examples.qdoc b/src/positioning/doc/src/qtpositioning-examples.qdoc deleted file mode 100644 index fbcc9a40..00000000 --- a/src/positioning/doc/src/qtpositioning-examples.qdoc +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! - \group qtpositioning-examples - \title Qt Positioning Examples - \brief Examples for the Qt Positioning module - \ingroup all-examples - \ingroup qtpositioning - - The list of \l {Qt Positioning} examples demonstrating how to use - Positioning API from C++ and QML. - -*/ diff --git a/src/positioning/doc/src/qtpositioning-plugins.qdoc b/src/positioning/doc/src/qtpositioning-plugins.qdoc deleted file mode 100644 index c75896f4..00000000 --- a/src/positioning/doc/src/qtpositioning-plugins.qdoc +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 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$ -** -****************************************************************************/ - -/*! -\page qtpositioning-plugins.html -\title Qt Positioning Plugins -\brief Default Plugins and Implementing Qt Positioning plugins - -Qt Positioning provides the majority of its functionality through plugins. -This document outlines how to develop a new position plugin. - -\section1 Default plugins -Some plugins already ship with Qt. These are: - -\table - \row - \li \b android - \li Wraps Android positioning subsystem. Available only on Android. - \row - \li \b corelocation - \li Wraps iOS and macOS positioning subsystems. Available only on Apple platforms supporting corelocation. - \row - \li \b geoclue2 - \li A \l {Qt Positioning GeoClue v2 plugin}{GeoClue v2} backend that - provides an interface to the GeoClue v2 D-Bus service. - \row - \li \b gypsy - \li A \l {Qt Positioning Gypsy plugin}{Gypsy} backend that provides - an interface to the Gypsy daemon. - \row - \li \b winrt - \li Wraps WinRT positioning subsystem. Available only on WinRT and Windows10. - \row - \li \b nmea - \li An \l {Qt Positioning NMEA plugin}{NMEA} backend that parses NMEA - streams from a GPS receiver to provide position updates. This plugin can - use serial port, socket or file as a source. - \row - \li \b positionpoll - \li A backend providing only area monitoring functionalities via polling on position updates. -\endtable - - -\section1 Plugin Description - -Each plugin is described by a json file. The json describes the plugins capabilities and -version. Below is an example of a json file used by the postionpoll plugin: - -\quotefile ../../../plugins/position/positionpoll/plugin.json - -The entries have the following meaning: - -\table - \header - \li Key - \li Description - \row - \li Keys - \li The unique name/key of the plugin. Each position plugin must have a unique name. - \row - \li Provider - \li The provider name of the services. Multiple plugins may have the same name. - In such cases the Version string will be used to further distinguish the plugins. - \row - \li Position - \li Set to \c true if the plugin implements a \l QGeoPositionInfoSource. - \row - \li Satellite - \li Set to \c true if the plugin implements a \l QGeoSatelliteInfoSource. - \row - \li Monitor - \li Set to \c true if the plugin implements a \l QGeoAreaMonitorSource. - \row - \li Priority - \li The plugin priority. If multiple plugins have the same provider name, the plugin - with the higest priority will be used. -\endtable - -\section1 Implementing Plugins - -A plugin implementer needs to subclass \l QGeoPositionInfoSourceFactory and override one or more of -its functions. If a plugin does not support a specific feature the function should return 0 or -utilize the default implementation. - -\list - \li \l QGeoPositionInfoSourceFactory::areaMonitor() - \li \l QGeoPositionInfoSourceFactory::positionInfoSource() - \li \l QGeoPositionInfoSourceFactory::satelliteInfoSource() -\endlist -*/ diff --git a/src/positioning/doc/src/qtpositioning-qml.qdoc b/src/positioning/doc/src/qtpositioning-qml.qdoc deleted file mode 100644 index 0c84484b..00000000 --- a/src/positioning/doc/src/qtpositioning-qml.qdoc +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 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$ -** -****************************************************************************/ - -/*! - \qmlmodule QtPositioning \QtVer - \title Qt Positioning QML Types - \ingroup qmlmodules - \brief Provides QML types for position information. - - \section1 Overview - - The identifying string for this module is \e QtPositioning. To use the QML - from this module, include the following import statement in the QML file: - - \qml \QtVer - import QtPositioning \1 - \endqml - - \section2 Positioning QML Concepts - - Position information can come from a variety of sources including - satellites, Wi-Fi, text files and so on. The position is described by the - latitude, longitude, and the altitude in meters. For more information, see - the Wikipedia page on - \l {http://en.wikipedia.org/wiki/Geographic_coordinate} - {Geographic Coordinates}. - - The QML position is stored in a \l {coordinate} which contains the - latitude, longitude and altitude of the device. The \l {QtPositioning::} - {Location} contains this \l {coordinate} and adds an address, and also has - a bounding box which defines the recommended viewing region when displaying - the location. - - Now that the device has a position, with regular updates the API can - determine the speed and heading of the device. It can also define a - box-shaped or circular region that triggers notifications when the device - either leaves or enters that region. - - More detailed information on retrieving the current position can be found - under \l {Positioning (QML)}{Location Positioning via QML}. - - \section1 Basic Types - - \annotatedlist qml-QtPositioning5-basictypes - - \section1 Alphabetical Listing of All QML Types -*/ diff --git a/src/positioning/doc/src/qtpositioning.qdoc b/src/positioning/doc/src/qtpositioning.qdoc deleted file mode 100644 index e4e7f8a4..00000000 --- a/src/positioning/doc/src/qtpositioning.qdoc +++ /dev/null @@ -1,153 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 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$ -** -****************************************************************************/ - -/*! - \module QtPositioning - \title Qt Positioning C++ Classes - \ingroup modules - \qtcmakepackage Positioning - \qtvariable positioning - - \brief The Positioning module provides positioning information via QML and C++ interfaces. - - To load the Qt Positioning module, add the following statement to your .qml files - - \snippet doc_src_qtpositioning.qml import - - For C++ projects include the header appropriate for the current use case, - for example applications using routes may use - - \code - #include <QGeoCoordinate> - \endcode - - \include module-use.qdocinc using qt module - - \badcode - find_package(Qt6 COMPONENTS Positioning REQUIRED) - target_link_libraries(mytarget PRIVATE Qt6::Positioning) - \endcode - - \include module-use.qdocinc building with qmake - - \badcode - QT += positioning - \endcode - - See more in the \l{Qt Positioning}{Qt Positioning Overview}. - -*/ - - - -/*! -\page qtpositioning-index.html -\title Qt Positioning -\brief The Qt Positioning API provides positioning information via QML and C++ interfaces. -\ingroup technology-apis - -The Qt Positioning API provides positioning information via QML and C++ interfaces. - -Currently the API is supported on \l {Qt for Android}{Android}, -\l {Qt for iOS}{iOS}, \l {Qt for macOS}{\macos}, \l {Qt for Linux/X11}{Linux}, -and \l {Qt for Windows}{Windows} (with GPS receivers exposed as a serial port -providing NMEA sentences or using \c {Windows.Devices.Geolocation}). - -\section1 Overview - -The Qt Positioning API gives developers the ability to determine a position by -using a variety of possible sources, including satellite, or wifi, or text file, -and so on. That information can then be used to for example determine a position -on a map. In addition satellite information can be retrieved and area based monitoring -can be performed. - -\include module-use.qdocinc using qt module - -\badcode -find_package(Qt6 COMPONENTS Positioning REQUIRED) -target_link_libraries(mytarget PRIVATE Qt6::Positioning) -\endcode - -See also the \l {Build with CMake} overview. - -\include module-use.qdocinc building with qmake - -\badcode -QT += positioning -\endcode - -\section2 Getting Started - -To load the Qt Positioning module, add the following statement to your .qml files - -\snippet doc_src_qtpositioning.qml import - -For C++ projects include the header appropriate for the current use case, -for example applications using routes may use - -\code -#include <QGeoCoordinate> -\endcode - -\section1 Module Evolution - -\l {Changes to Qt Positioning} lists important changes in the module API and -functionality that were done for the Qt 6 series of Qt. - -\section1 Licenses - -Qt Positioning is available under commercial licenses from \l{The Qt Company}. -In addition, it is available under free software licenses. Since Qt 5.4, -these free software licenses are -\l{GNU Lesser General Public License, version 3}, or -the \l{GNU General Public License, version 2}. -See \l{Qt Licensing} for further details. - -\section1 Articles and Guides - -\list - \li \l {Positioning (C++)} {Positioning introduction for C++} - \li \l {Positioning (QML)} {Positioning introduction for QML} - \li \l {Qt Positioning Plugins} - \li \l {Interfaces between C++ and QML Code in Qt Positioning} - \li \l {Qt Positioning on Android} -\endlist - -\section1 Reference - -\list - \li \l {Qt Positioning C++ Classes} - \li \l {Qt Positioning QML Types} -\endlist - -\section1 Examples - -\list - \li \l {Qt Positioning Examples} -\endlist - -*/ |