/****************************************************************************
**
** 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$
**
****************************************************************************/

/*!
    \qmlmodule QtLocation 5.3
    \title Qt Location QML Types
    \ingroup qmlmodules
    \brief Provides QML types for mapping and location information

\section1 Overview

Provided that a position has been obtained, this module can add a
\l{QtLocation::Map}{Map} with Places of Interest (POI) and
\l{QtLocation::Place}{Places}. The user can be made aware of nearby features
and related information, displayed graphically. Features on the \l Map can be
places of business, entertainment, and so on.  They may include paths, roads,
or forms of transport, enabling navigation optimization and assistance.

To perform navigation we need \l {Route}s from start to destination. These routes
are made up of segments, where each \l {QtLocation::RouteSegment}{RouteSegment}
can be considered a navigation subtask: drive 100 meters, turn left. The beginning and
end of each segment is a \e waypoint, that is, one part of our journey.

A typical use case for the API is a user looking for a particular type of
place, say a restaurant. The user could enter a search string into the map
application and respond to a list or display of results for restaurants
"near" the device. The application could then be used to navigate to the
restaurant using an optimized route that is aware of features in the
environment that can help or hinder the journey. The navigation then
proceeds with the user's progress monitored by means of the current
\l Location. In the context of this API the map application would be aware
of the location and size of various places and the location of the user.
Plugins would supply the data required by the application to determine routes
and navigation instructions. The \l Place types would hold information about the
destination and surrounding objects including displayable representations.
The \l Map type would enable this information to be displayed, panned,
zoomed and so on. The \l Route would be determined by a plugin with each
\l RouteSegment holding the navigation instructions guided by the updated
current \l Location.

\l {Plugin}s are a means of specifying which location-based service to use. For
example, a plugin may allow connection to a provider's service that provides
geocoding and routing information, which can be consumed by the application.
There may be various GeoServices plugins for various tasks with some plugins
providing more than one service. One QML \l Plugin must be created for each
required GeoService plugin. Plugins are required for maps, routing and geocoding,
and places, however the default plugin handles all four of these services. A plugin may
require online access or may support on-board maps and data.

\note Plugins may not provide features such as paging or relevance hints.

The following links provide more detailed information about maps and places:

\table
    \row
        \li \l {Maps and Navigation (QML)}{Maps and Navigation}
        \li Displaying maps and finding routes.
    \row
        \li \l {QML PLaces API} {Places}
        \li Searching for and managing points of interest.
\endtable

\section1 Common QML Types

\annotatedlist qml-QtLocation5-common

\section1 Maps QML Types

\annotatedlist qml-QtLocation5-maps

\section1 Navigation and Routing QML Types

\annotatedlist qml-QtLocation5-routing

\section1 Geocoding QML Types

\annotatedlist qml-QtLocation5-geocoding

\section1 Places QML Types

\annotatedlist qml-QtLocation5-places

\section1 Alphabetical Listing of All QML Types
*/
