Quero criar uma função que selecione um recurso e aplique zoom (semelhante no QGIS). Portanto, existe a seguinte função:
QgsMapLayerRegistry.instance().addMapLayer(self.vlayer)
def zoomTo(self):
layer = self.vlayer
atable = self.ui.table
selectList=[]
for i in atable.selectionModel().selectedRows():
ID = atable.item(i.row(),0).text()
selectList.append(int(ID))
layer.setSelectedFeatures(selectList)
Os recursos selecionados são destacados no mapa. Mas não tenho idéia de como fazer um "zoom" nos recursos selecionados ou algum tipo de foco no meio do mapa.
gis.utils.iface
. Agora está funcionando perfeitamente. Mais uma vez obrigado!O zoom para os recursos selecionados também pode ser realizado acionando a opção "Zoom na seleção" do menu Exibir.
Nota: O número do índice pode variar com diferentes versões do QGIS.
Ou mais diretamente:
fonte
iface.actionZoomToSelected().trigger()
é um pouco mais seguro :)# A primeira QMessageBox exibe todos os recursos selecionados:
# Segundo zoom para os recursos selecionados:
fonte