Več

Qgis 2.7 (Dev) rotacija funkcij?

Qgis 2.7 (Dev) rotacija funkcij?


Zanima me, ali ima naslednja koda očitno napako, ki je bila spregledana pri vrtenju ene same poligonske funkcije.

The* .geometry (). rotate (…) vrne '0', kar pomeni, da je bil uspešen - vendar zaslon in vir podatkov ne prikazujeta nobenega vrtenja; tudi po ponovnem nalaganju / osvežitvi sloja, legende in platna.

Ali je težava v sintaksi ali morda (ker je to različica za razvijalce) še ne popolnoma delujoča funkcija?

inputShapeRef.startEditing () featureSearch = QgsFeatureRequest (). setFilterFid (int (inputShapeID)) featureRef = inputShapeRef.getFeatures (featureSearch) za funkcijo v featureRef: feature.geometry (). rotate (self.MaxRotation.com, self.mithaShaChaRonges.com, self.mithaChanceRroid. ()

NADGRADNJA: Manjkala je ena vrstica kode, v nadaljevanju pa je posodobljen skript. Uspešno zasuka obliko pod želeni kot; precej hitro!

inputShapeRef.startEditing () featureSearch = QgsFeatureRequest (). setFilterFid (int (inputShapeID)) featureRef = inputShapeRef.getFeatures (featureSearch) za funkcijo v featureRef: feature.geometry (). rotate (self.MaxRotation, self.baseGeeFeratry. (feature.id (), feature.geometry ()) # <=== + = uspeh inputShapeRef.commitChanges ()

KONČNE MISLI / VPRAŠANJA:

Ali kdo ve, ali se ta funkcionalnost prenese na celotno plast, obseg slojev ali izbor več funkcij? Funkcija obdelave prevajanja SAGA izpolnjuje to potrebo - vendar je žejna podatkov. Nizka poraba podatkov in hitra vrnitev te nove rotacije ene same funkcije bi bila zelo koristna za celotno plast ali izbor več funkcij v njej.

Recimo na primer, da je treba matriko točk vrteti sinhronizirano s pripadajočim omejevalnim poligonom - namesto da nato zasukajte vsako točko posebej, ali obstaja možnost sočasnega vrtenja celotnega polja, ne da bi ustvarili nov nabor podatkov?


Ne spreminjate vektorja, ampak vsebuje "kopije", ki jih dobite z getFeatures. Pridobiti morate funkcijo.id () in updateGeometry z uporabo dataProviderja vektorja ali neposredno z uporabo metod vektorske plasti (znotraj urejevalne seje)

sklic na metode najdete v: za QgsVectorDataProvider: virtual bool changeGeometryValues ​​(QgsGeometryMap & geometry_map) (sklicevanja na to imate v kuharski knjigi pyqgis) Potem sprožiteRepaint

za QgsVectorLayer: bool changeGeometry (QgsFeatureId fid, QgsGeometry * geom) po commitChanges, ni potrebe po sprožitviRepaint

pozdrav, Luigi Pirelli


Poglej si posnetek: Как быстро цифровать красивые изолинии