Minimal Map (QML)

The minimum code to display a map using Qt Quick.

Minimal Map 演示如何使用 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.

运行范例

要运行范例从 Qt Creator ,打开 欢迎 模式,然后选择范例从 范例 。更多信息,拜访 构建和运行范例 .

C++ 代码

main.cpp we use only the QGuiApplication and QQmlApplicationEngine 类。

#include <QGuiApplication>
#include <QQmlApplicationEngine>
					

In the main function, we first instantiate a QGuiApplication object. Then we create a QQmlApplicationEngine and tell it to load main.qml Qt 资源系统 .

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

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}
					
					

QML 代码

main.qml , we import the QtLocation QML module and its depending 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 Map item showing the map.

import QtQuick 2.0
import QtQuick.Window 2.14
import QtLocation 5.6
import QtPositioning 5.6
Window {
    width: Qt.platform.os == "android" ? Screen.width : 512
    height: Qt.platform.os == "android" ? Screen.height : 512
    visible: true
    Plugin {
        id: mapPlugin
        name: "osm" // "mapboxgl", "esri", ...
        // specify plugin parameters if necessary
        // PluginParameter {
        //     name:
        //     value:
        // }
    }
    Map {
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(59.91, 10.75) // Oslo
        zoomLevel: 14
    }
}
					

The 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 PluginParameter to specify them. In this example, we use the osm plugin, which is a Qt Location 开放式街道地图插件 and does not require any parameters.

Map item, we refer to the plugin we use and we set the center zoomLevel of the map.

要求

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

范例工程 @ code.qt.io