【问题标题】:How can I create a online/offline map in QML?如何在 QML 中创建在线/离线地图?
【发布时间】:2019-10-02 23:50:58
【问题描述】:

目前我有这张地图。我的问题是插件参数“osm.mapping.offline.directory”会加载缓存中的所有图块。如果文件夹中有 20000 个图块,他会尝试加载所有这些图块。这需要很长时间。

我如何告诉 OSM 插件他应该加载多少图块。 如果这不起作用,我是否要编写一个新插件?

Map
{
    id: map
    anchors.fill: parent
    zoomLevel: 14

    property bool isMapOnline = false

    Component.onCompleted: map.plugin = _guiMap.mapIsOnline ? osmPlugin : offlinePlugin

    Plugin
    {
        id: osmPlugin
        name: "osm"
        PluginParameter { name: "osm.mapping.host"; value: "http://tile.openstreetmap.org/" }
        PluginParameter { name: "osm.mapping.providersrepository.disabled"; value: "true" }
    }

    Plugin
    {
        id: offlinePlugin
        name: "osm"
        PluginParameter { name: "osm.mapping.offline.directory"; value: "C:/Tiles" }
    }

【问题讨论】:

  • 在这里查看所有可能的参数:doc-snapshots.qt.io/qt5-dev/location-plugin-osm.html - 也许其中一个或组合可以归档您的目标 - 只需使用与缓存有关的任何参数,存储或内存
  • 是的,我尝试了其他参数,但它不起作用:/

标签: qt plugins qml openstreetmap


【解决方案1】:

我有一个与您的非常相似的可行解决方案。
首先,修复属性初始化中的语法错误。

属性 bool isMapOnline: false


二、替换

Component.onCompleted: map.plugin = _guiMap.mapIsOnline ? osmPlugin : 离线插件

插件:isMapOnline ? osmPlugin : 离线插件

还有一些其他的细微差别;但是,这应该可以帮助您工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 2012-07-01
    • 1970-01-01
    • 2017-06-07
    • 2011-11-29
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多