// Copyright (C) 2019 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \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 REQUIRED COMPONENTS Positioning)
    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 lets you to determine a position by using a variety of
possible sources, including satellite, wifi, or text files. That information can
then be used to, for example, determine a position on a map. In addition, you
can use to the API to retrieve satellite information and perform area based
monitoring.

\section1 Using the Module

\section2 QML API

\include {module-use.qdocinc} {using the qml api} {QtPositioning}

\section2 C++ API

\include {module-use.qdocinc} {using the c++ api}

\section3 Building with CMake

\include {module-use.qdocinc} {building with cmake} {Positioning}

\section3 Building with qmake

\include {module-use.qdocinc} {building_with_qmake} {positioning}

\section1 Permissions

Starting from Qt 6.6, the Qt Positioning module uses new \l QPermission API
to handle \l {QLocationPermission}{location} permissions. This means that Qt
itself no longer queries for these permissions, so this needs to be done
directly from the client application.

Please refer to the \l {Application Permissions} page for an example of how
to integrate the new \l QPermission API into the application.

\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}
    \li \l {Qt Positioning on iOS}
\endlist

\section1 Examples

\list
    \li \l {Qt Positioning Examples}
\endlist

\section1 Reference

\list
    \li \l {Qt Positioning C++ Classes}
    \li \l {Qt Positioning QML Types}
\endlist

\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.
*/
