【发布时间】:2015-10-09 18:28:52
【问题描述】:
我想选择特征并放大它们并使用 PyQgis 完成所有这些步骤。
而且我可以分别做这两个,但是当我尝试混合它们时似乎不起作用。
我使用的两个代码都来自互联网。这是我用来选择图层特征的方法:
from qgis.core import *
import qgis.utils
lyrMap = QgsVectorLayer('C:/someplace', 'MapName', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(lyrMap)
expr = QgsExpression("'Attribute' IS NOT NULL")
it = lyrMap.getFeatures(QgsFeatureRequest(expr))
ids = [i.id() for i in it] #select only the features for which the expression is true
lyrMap.setSelectedFeatures(ids)
当功能出现在 QGis 上时,它似乎起到了作用。
为了缩放代码要简单得多,它只是:
canvas = qgis.utils.iface.mapCanvas()
canvas.zoomToSelected(lyrMap)
但似乎画布并没有考虑到 lyrMap 上有选择,并且什么也不做。我尝试在 QGis 中手动进行选择,然后使用 zoomToSelected 进行缩放,并且成功了。
但我的目标是无需手动进行选择...
注意:我认为这不是问题,但我正在选择的属性来自 lyrMap 和另一层之间的连接(我没有将代码放在这里,因为我认为它没有链接)。
非常感谢您提供答案、线索或任何东西:)!
【问题讨论】: