0

我目前正在创建一个能够显示地图的应用程序。在添加更多高级功能之前,我想简单地在应用程序中显示某个区域的地图。为此,我使用了 Qt 示例“Minimal map”中的一些修改代码。map.qml 文件中的代码:

import QtQuick 2.0
import QtLocation 5.6
import QtPositioning 5.6

Rectangle {
    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
    }
}

我使用 QQuickWidget 显示地图,并将源设置为我的 QML 文件。不幸的是,地图没有显示。QuickWidget 中仅显示灰色背景和题词(我在帖子中附上了图片)。在 QML 调试器控制台中,我收到了以下消息:

“QObject:​:​connect(​QQuickWindow,​QDeclarativeGeoMap)​:​无效的 nullptr 参数”

“QGeoTileProviderOsm:​Tileserver 在 QUrl 处禁用(​“​http:​/​/​maps-​redirect.​qt.​io/​osm/​5.​8/​satellite”​)​​​​

“QGeoTileFetcherOsm:​所有提供者都已解决”

“QSslSocket:​:​connectToHostEncrypted:​TLS 初始化失败”

“QGeoTileRequestManager:​ 5次获取瓦片失败(​8682,​4766,​14)​,​放弃。​最后的错误讯息是:​'​TLS初始化失败'​”

链接到显示问题的屏幕截图

4

1 回答 1

1

如果您的操作系统是windows,您应该安装OpenSSL。而且您正在使用 osm 插件,因此在运行应用程序时应该连接到互联网。

您在我的系统中的代码运行如下:

您在我的系统中的代码运行如下:

于 2021-06-17T15:17:04.817 回答