Есть shp'ы. Хочу округлять координаты узлов объектов до 7 знака после запятой (потому что часто знаков после запятой 14-15). Ни чего ненагуглилось простого. Написал скрипт на pythone в котором получаю координаты объектов, открытого в QGIS слоя, с помощью функции round() округляю их, и перезаписываю геометрию:
Код: Выделить всё
from qgis.PyQt.QtCore import *
layer = iface.activeLayer()
for i in layer.getFeatures():
geom = i.geometry()
list = geom.asPolygon()
poly = []
for polygone in list:
for point in polygone:
lon = point[0]
lat = point[1]
poly.append(QgsPoint(round(lon, 7), round(lat, 7)))
layer.dataProvider().changeGeometryValues({i.id(): QgsGeometry.fromPolygon([poly])})
crs = layer.crs()
crs.createFromId(4326)
layer.setCrs(crs)
QgsMapLayerRegistry.instance().addMapLayer(layer)
Отсюда вопрос: Не покидает ощущения того, что я всё усложнил. Неужто округлить координаты в shp'е нельзя каким то простым ("кнопочным") образом? Возможно какая то функция есть в pyqgis'е которая это делает без перезаписывания геометрии...