QML 地图使用按钮平滑缩放

QML Map Smooth Zooming using Buttons

我正在尝试创建一个小区域的地图。在这张地图上,我有 2 个按钮,一个用于放大,另一个用于缩小。我创建了 2 个按钮和 1 个加载程序,然后将它们连接在一起以使其工作。我的按钮和加载器代码:

Loader.qml

Loader {
    id: mapLoader
    
    source: "map.qml"

    function reload () {
        source = ""
        source = "map.qml"
        
        console.log("Map Updated")
    }
}

Buttons.qml

// This button zooms in 1 unit
// get_Zoomlevel() works on C++; therefore, it isn'T affected from qml reloads.

Button {
    ...

    onClicked: {
        map.setZoomLevel(map.get_ZoomLevel() + 1)
        mapLoader.reload()
    }

    ...
}

毕竟,它如预期的那样工作,我可以轻松地放大和缩小。但是,由于加载程序从头开始加载所有地图组件,因此正常和流畅的用户体验需要更长的时间。因此,我正在寻找更好的加载方式或任何其他建议。提前致谢。

我找到了答案,我想为将来分享。 我以为QML Map的zoomLevel 属性只是为了阅读,但我发现我也可以写;因此,当我注意到它就变得简单了。

我创建了一个变量,

property int zoomLv = 15 // default zoom level

每当我使用按钮放大/缩小时,我只是编辑了这个变量,而不是重新加载完整的地图项目。

onClicked: {
    zoomLv += 1
}