Ich möchte eine Funktion erstellen, die ein Feature auswählt und darauf zoomt (ähnlich in QGIS). Daher gibt es folgende Funktion:
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)
Die ausgewählten Features werden auf der Karte hervorgehoben. Ich habe jedoch keine Ahnung, wie ich die ausgewählten Features "zoomen" oder in der Mitte der Karte fokussieren soll.
gis.utils.iface
. Jetzt funktioniert es perfekt. Danke nochmal!Das Zoomen auf ausgewählte Funktionen kann auch durch Auslösen der Option "Auf Auswahl zoomen" im Menü "Ansicht" ausgeführt werden.
Hinweis: Die Indexnummer kann je nach QGIS-Version variieren.
Oder direkter:
quelle
iface.actionZoomToSelected().trigger()
ist ein wenig sicherer :)# Die erste QMessageBox zeigt alle ausgewählten Funktionen an:
# Zweiter Zoom auf ausgewählte Funktionen:
quelle