/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\example minimal_map
\title Minimal Map (QML)
\ingroup qtlocation-examples
\brief The minimum code to display a map using Qt Quick.

\image minimal_map.png

\e {Minimal Map} demonstrates how to use the \l{Map} item to render a map.
It shows the minimum amount of code needed to display the map, and can be used
as a basis for further experimentation.

\include examples-run.qdocinc

\section1 C++ Code

In \c main.cpp we use only the QGuiApplication and QQmlApplicationEngine
classes.

\quotefromfile minimal_map/main.cpp
\skipto #include
\printto main

In the main function, we first instantiate a QGuiApplication object.
Then we create a QQmlApplicationEngine and tell it to load \c main.qml
from the \l{The Qt Resource System}{Qt Resource System}.

Finally, QGuiApplication::exec() launches the main event loop.

\printuntil }

\section1 QML Code

In \c main.qml, we import the \l {Qt Location QML Types}{QtLocation} QML module
and its depending \l {Qt Positioning QML Types}{QtPositioning} QML module.
Next, we create the top level window, set a sensible default size, and make
it visible. The window will be filled by a \l [QML]{Map} item showing the map.

\quotefromfile minimal_map/main.qml
\skipto import
\printuntil }
\printline }
\skipto Map
\printuntil }
\printline }

The \l [QML]{Plugin} item is necessary to define the map provider we are
going to use. The example can work with any of the available geo services
plugins. However, some plugins may require additional plugin parameters
in order to function correctly and we can use \l [QML]{PluginParameter}
to specify them. In this example, we use the \c osm plugin, which is a
\l {Qt Location Open Street Map Plugin} and does not require any parameters.

In the \l [QML]{Map} item, we refer to the \c plugin we use and we set the \c
center and the \c zoomLevel of the map.

\section1 Requirements

The example requires a working internet connection to download
\c OpenStreetMap map tiles. An optional system proxy should be picked
up automatically.
*/
