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

/*!
\example minimal_map
\title Minimal Map (QML)
\ingroup qtlocation-examples
\examplecategory {Positioning & Location}
\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

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