我正在使用QtLocation QML地图在地图上显示大量的项目。随着地图上可见项目的数量减少,性能会下降,我想设置为仅在视口上实际可见的项目可见。为此,只需根据项目的坐标是否在视口内计算可见性会很方便,例如:
visible: mapBase.visibleRegion.contains(model.item.coordinate)但不幸的是,正如http://doc.qt.io/qt-5/qml-qtlocation-map.html#visibleRegion-prop的文档所述,visibleRegion属性是非NOTIFYable的。
是否有任何特定的原因(如性能问题)不为该属性实现通知信号?有没有办法解决这个问题,并根据地图项目是否在视口中来设置地图项目的可见性?
发布于 2018-11-29 22:10:37
我想原因可能是它的计算成本很高。但是,当以下属性之一发生更改时,visibleRegion会发生变化: zoomLevel、center、bearing、tilt、fieldOfView。例如,您可以定义自己的"property var visRegion",并通过获取visibleRegion并将其分配给visRegion,在对上述属性进行反应时更新它。
https://stackoverflow.com/questions/53412746
复制相似问题