[QGIS-it-user] editing delle linestringZM in QGIS + Postgis
Salvatore Larosa
lrssvtml a gmail.com
Mar 31 Maggio 2016 11:15:36 PDT
Ciao,
2016-05-31 15:38 GMT+02:00 Amedeo Fadini <amefad a 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
Maggiori informazioni sulla lista
QGIS-it-user