Ciao,
2016-05-31 15:38 GMT+02:00 Amedeo Fadini <amefad@gmail.com>:
Salve a tutti,
devo gestire un grafo stradale in Postgis le geometrie sono Linestring
a 4 dimensioni (XYZM).
nel momento in cui devo spezzare una linea con lo strumento di editing
di QGIS viene tagliata correttamente ma non è posisbile fare il commit
in quanto viene sollevato l'errore:
ERROR: Column has M dimension but geometry does not
Segno che la "nuova" geometria creata non ha la dimensione M.
incuriosito e non avendo a disposizione geometrie di quel tipo ho
fatto una prova fai da te.
Riesco ad inserire ed a spezzare le geometrie senza alcun errore.
Sarebbe interessante fare una prova con i tuoi dati.
il mio testcase:
CREATE TABLE test.my_table (gid serial NOT NULL);
SELECT AddGeometryColumn('test', 'my_table', 'geom', 4326, 'LINESTRING', 4 );
INSERT INTO test.my_table VALUES(1, ST_GeomFromText('LINESTRING(0 0 0
1,0 5 0 2,5 0 0 3,0 0 0 4)', 4326));
Dalla python console (come controprova):
vl = iface.activeLayer()
for f in vl.getFeatures():
... geom = f.geometry()
... geom.geometry().wkbType() == QgsWKBTypes.LineStringZM
True
Il test l'ho fatto con la versione di sviluppo però, tu?
Lo stesso accade quando cerco di aggiungere un vertice nuovo, che
assume M=0 e tale valore è incoerente con i vertici vicini. I n questo
caso la geometrie scompare del tutto.
Avete qualche idea di come si può risolvere? Esiste nel calcolatore di
campi una funzione che consente di aggiungere la misura alla geometria
prima del commit?
Dovresti riuscire ad editare la tabella presente nell'editor dei
vertici una volta cliccato sulla geometria con il Node Tool.
Da li puoi editare sia la Z che la M e poi salvare il tutto.
--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode