/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** 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 Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/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: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/




/*!
    \module QtLocation
    \title Qt Location C++ Classes
    \ingroup modules
    \qtvariable location

    \brief Location module provides positioning, mapping, navigation, and place search
       via QML and C++ interfaces.

    To load the Qt Location module, add the following statement to your .qml files

    \code
        import QtLocation 5.0
    \endcode

    For C++ projects include the header appropriate for the current use case,
    for example applications using routes may use

    \code #include <QGeoRoute> \endcode

    The .pro file should have the \e location keyword added

    \code QT += location \endcode


    See more in the \l{Qt Location}{Qt Location Overview}.

*/



/*!
\page qtlocation-index.html
\title Qt Location
\brief The Qt Location API provides positioning, mapping, navigation, and place search
       via QML and C++ interfaces.
\ingroup technology-apis

The Qt Location API provides positioning, mapping, navigation, and place search via QML
and C++ interfaces.

\section1 Overview

The Qt Location 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 determine a position in a map
context with appropriate navigation and to embed, in the map, defined places
with descriptive metadata. These three parts
allow a device to know where it is and its location with respect to important
features. Using features such as roads, destinations, routes,
and other navigation attributes, applications can specify beginning and end-points
for navigation and awareness of objects that may aid or hinder a journey.

\section1 Getting Started

To load the Qt Location module, add the following statement to your .qml files

\code
    import QtLocation 5.0
\endcode

For C++ projects include the header appropriate for the current use case,
for example applications using routes may use

\code #include <QGeoRoute> \endcode

The .pro file should have the \e location keyword added

\code QT += location \endcode

\section2 API Sub-Modules
The API is split into sub-modules, which each have QML and C++ APIs. It focuses on
Map and Place information. The required position data can be retrieved via the
\l {QtPositioning} module.

\section3 Places
Places is
the natural complement to Positioning, providing a source of geographic
data about places of interest (POIs). As well as providing the location,
size and other vitals about a POI, the Places API can also retrieve images,
reviews and other rich content related to the place.

\table
\row
    \li Places introduction:
    \li \l{QML Places API}{for QML}
    \li \l{Places (C++)}{for C++}
\endtable

\section3 Maps and Navigation
Maps and Navigation provides Qt Quick user
interface components for displaying geographic information on a map, as
well as allowing user interaction with map objects and the display itself.
It also contains utilities for geocoding (finding a geographic coordinate
from a street address) and navigation (including driving and walking
directions).
\table
\row

\li Maps and Navigation introduction:
    \li \l{Maps and Navigation (QML)}{for QML}
    \li \l{Maps and Navigation (C++)}{for C++}
\endtable

\section1 API References and Examples

Alphabetized lists of all classes and user interface components in the API, as well as detailed
example applications to demonstrate their usage.

\table
    \row
        \li \l {Qt Location QML Types}{QML API Reference}
        \li Full list of QML components in the Qt Location API
    \row
        \li \l {Qt Location C++ API}{C++ API Reference by domain}
        \li Full list of C++ classes and methods of the Qt Location APIs sorted by domain
    \row
        \li \l {Qt Location C++ Classes}{C++ API Reference}
        \li Full list of C++ classes and methods of the Qt Location APIs
    \row
        \li \l {Qt Location Examples}{Example Apps}
        \li Examples demonstrating use of the Qt Location APIs
     \row
        \li \l {QML Maps}{Maps and Navigation Tutorial}
        \li Tutorial introducing the QML Maps Types
\endtable

\section1 Plugin References and Parameters

Information about plugins, important notes on their usage, parameters that can
be provided to influence their behavior.

\annotatedlist QtLocation-plugins

\section2 Implementing New Back-Ends and Porting

For systems integrators and distributors, information relating to making
Qt Location available for a new platform.

\table
    \row
        \li \l {Qt Location GeoServices}{GeoServices}
        \li Information about the Qt Location GeoServices plugins
    \row
        \li \l {Places Backend} {Places}
        \li Information for places backend implementors
\endtable

\section1 New Since Qt 4

In Qt 4 Qt Mobility provided some location functionality for Positioning and Maps
with Landmarks support. The new Qt Location API has had an extensive reworking
of \l {Map}s and \l {Place}s (formerly Landmarks). Also both C++ and QML APIs have
been reworked to be simpler to use.

New features of Qt Location includes
\list
    \li Maps are now part of the Qt Quick scenegraph, and rendered using hardware-accelerated OpenGL
    \li Arbitrary Qt Quick items on the map are supported using \l MapQuickItem
    \li Now possible to create map overlays with a model
    \li Built-in support for pinch-to-zoom gestures, flicking , and panning (see \l MapGestureArea)
    \li Vast performance improvements over Qt Mobility 1.2, especially for large map polylines and objects in general
    \li Full QML API now available for routing and geocoding -- compatible with standard QML model-view design
    \li Service provider feature detection without having to open all the available plugins
    \li Unified \l Plugin QML type used by routing/geocoding/maps etc with easy-to-set \l PluginParameter
    \li Two plugins are supplied with Qt (a Nokia and an OSM plugin for GeoServices).
    \li Landmarks API is replaced by the Places API
    \li \l Place supports viewing of richer content such as reviews, images, and editorials
    \li \l Place supports locale handling, sponsored search results, and supplier attribution
\endlist

*/
