[Gfoss] QGIS E L'ARTE DELLA MOTOCICLETTA

francesco.fiermonte a polito.it francesco.fiermonte a polito.it
Ven 7 Lug 2017 11:58:16 CEST


Ciao a Tutti,

problema:

dal Geoportale Regione Piemonte si scarica lo shapefile "Abiti Amministrativi - Comuni" (polygon) e su questo "tematizzare" - usando l'"expression dialog" - il dato in funzione della "classe altimetrica" (campo "D_ZONA_ALT"): pianura, collina, montagna.

PROCEDURA UTILIZZATA

Se in LAYER PROPERTIES, STYLE, ***CATEGORIZED***, si usa con "expression builder" il seguente codice:

CASE
WHEN "D_ZONA_ALT" ='pianura' THEN color_rgb( 0,0,0)
WHEN "D_ZONA_ALT" ='collina' THEN color_rgb( 255,0,0)
WHEN "D_ZONA_ALT" ='montagna' THEN color_rgb( 255,255,255)
END

i colori RGB restituiti NON corrispondono alle codifiche.

PROCEDURA SUGGERITA Da NYALL DAWSON (che ovviamente ringrazio!!!)

Se in LAYER PROPERTIES, STYLE, ***SINGLE SIMBOL***, SINGLE FILL, FILL, EDIT si usa con "expression builder" il codice di prima:

CASE
WHEN "D_ZONA_ALT" ='pianura' THEN color_rgb( 0,0,0)
WHEN "D_ZONA_ALT" ='collina' THEN color_rgb( 255,0,0)
WHEN "D_ZONA_ALT" ='montagna' THEN color_rgb( 255,255,255)
END

mi pare che la cosa funzioni a dovere.

(Nel mio inglese "maccheronico") Ho aperto una "Request" (Issue #16804 created.) su:

https://issues.qgis.org/projects/qgis/issues

Nyall Dawson mi ha subito risposto (definendo "invalida" la mia richiesta, chiudendola...) dicendomi che:

"That's not correct use of categorised renderer.
Categorize on the attribute "layer" and then set the color manually for each generated symbol.
Or alternatively (more complex way) use the single symbol renderer and then use your expression as a data defined fill color override.
Please open a question on http://gis.stackexchange.com/ if you need further assistance of this nature (it's not a bug or feature report, so doesn't belong here).
"

A me, sinceramente, dovendo tematizzare un qualcosa l'aver scelto "CATEGORIZED" mi pareva appropriato...


Poi, se il mio approccio fosse concettualmente sbagliato, forse QGIS dovrebbe "gestire" l'errore, impedendo all'utente di fare un qualcosa di "sbagliato" che, tra l'altro, restituisce un output inappropriato...

Che ne pensate?

Ciao,
Francesco.


Maggiori informazioni sulla lista Gfoss