Minimal Map (QML)

Minimal 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 地圖 item showing the map.

import QtQuick 2.0
import QtQuick.Window 2.0
import QtLocation 5.6
import QtPositioning 5.6
Window {
    width: 512
    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.

地圖 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.

文件: