我正在使用QtLocation QML地图在地图上显示大量项目。由于在地图上可见的项目数量会降低性能,因此我想将仅在视口上实际可见的项目设置为可见。为此,仅根据项目的坐标是否在视口内来计算可见性是很方便的,例如:
visible: mapBase.visibleRegion.contains(model.item.coordinate)
但是不幸的是,如http://doc.qt.io/qt-5/qml-qtlocation-map.html#visibleRegion-prop文档中所述,visibleRegion属性是不可更改的。
是否有任何特定原因(例如性能问题)不为此属性实现通知信号?有什么方法可以解决此问题,并根据地图项是否在视口内来设置其可见性?
答案 0 :(得分:0)
我认为原因可能是计算成本很高。 但是,当以下属性之一更改时,visibleRegion也会更改:zoomLevel,center,bearing,tilt,fieldOfView。例如,您可以定义自己的“ property var visRegion”,并在对上述这些属性做出反应时通过获取visibleRegion并将其分配给visRegion来对其进行更新。