Я хочу выбрать функции, увеличить их и выполнить все эти шаги с помощью 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)
Но, похоже, canvas не считает, что на lyrMap есть выделение, и просто ничего не делает. Я попытался сделать выбор вручную в QGis, а затем увеличить масштаб с помощью zoomToSelected, и это сработало.
Но моя цель - сделать это без необходимости делать выбор вручную...
Примечание. Я не думаю, что это проблема, но атрибут, по которому я делаю выбор, связан с соединением между lyrMap и другим слоем (я не помещал сюда код, потому что не думаю, что он связан).
Заранее спасибо за ответы, подсказки или что-нибудь на самом деле :) !