The minimum code to display a map using Qt Quick.
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 ,打開 歡迎 模式,然後選擇範例從 範例 。更多信息,拜訪 構建和運行範例 .
在
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(); }
在
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.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.
在
地圖
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.