Skip to content

Instantly share code, notes, and snippets.

@juusechec
Last active February 27, 2018 19:47
Show Gist options
  • Save juusechec/5ebc9c6d19d19c7be52f6b50d694b4e1 to your computer and use it in GitHub Desktop.
Save juusechec/5ebc9c6d19d19c7be52f6b50d694b4e1 to your computer and use it in GitHub Desktop.
Test of Actions in QGIS 3
from qgis.utils import iface
#iface.activeLayer().id()
# https://gis.stackexchange.com/questions/91011/how-to-select-and-zoom-in-features-from-a-qgis-python-plugin
layer = iface.mapCanvas().layers()[0]
#layer = QgsProject.instance().mapLayer('waterways20171005162048981')
filter='"osm_id"=' + str([%osm_id%])
r = QgsFeatureRequest().setFilterExpression(filter)
features = layer.getFeatures(r)
features = [feature for feature in features]
print(features)
ids = [i.id() for i in features]
feature = features[0]
print(feature.geometry().asWkt())
geometry = feature.geometry()
lines = geometry.asMultiPolyline()
print(lines[0])
lines[0].reverse()
new_geometry = QgsGeometry.fromMultiPolylineXY(lines)
with edit(layer):
layer.changeGeometry(feature.id(), new_geometry)
layer.select(ids)
iface.mapCanvas().zoomToSelected()
iface.mapCanvas().refresh()
print('finished')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment