1

我正在使用 QtLocation QML Map 在地图上显示大量项目。与地图上可见的项目数量一样,性能会降低,我想仅将视口上实际可见的项目设置为可见。为此,仅根据项目的坐标是否在视口内来计算可见性会很方便,例如:

visible: mapBase.visibleRegion.contains(model.item.coordinate)

但不幸的是,visibleRegion 属性是不可通知的,如http://doc.qt.io/qt-5/qml-qtlocation-map.html#visibleRegion-prop文档中所述。

是否有任何特定原因(如性能问题)不为此属性实现通知信号?有没有办法解决这个问题,并根据它是否在视口内设置地图项的可见性?

4

1 回答 1

0

我想原因可能是计算起来很昂贵。但是当以下属性之一发生变化时,visibleRegion 会发生变化:zoomLevel、center、bearing、tilt、fieldOfView。例如,您可以定义自己的“property var visRegion”,并在对上述属性做出反应时通过获取 visibleRegion 并将其分配给 visRegion 来更新它。

于 2018-11-29T14:10:37.023 回答