{ "author": "Salvatore Fiandaca", "exported_at": "2021-07-22T18:21:55", "expressions": [ { "description": "\n
\nIT: Converte l'area in ha (ettari)
\nEPSG proiettasto con unit = meters
\n#HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/gr_funzioni/geometria/area.html?
\nEN : Converts the area into ha
\nEPSG projected with unit = meters
", "expression": "format_number($area/10000,2) || ' ha'", "group": "user", "name": "Area in hectares", "type": "expression" }, { "description": "\n\nIT: Converte l'area in km²
\nEPSG proiettasto con unit = meters
\n#HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/gr_funzioni/geometria/area.html?
\nEN : Converts the area into km²
\nEPSG projected with unit = meters
", "expression": "format_number($area/1000000,2) || ' km²'", "group": "user", "name": "Area in km²", "type": "expression" }, { "description": "\n\nLista dei nomi dei layer caricati nel pannella dei layer
", "expression": "/*array di nome layer caricati*/\r\narray_foreach( \r\n @layer_ids, \r\n regexp_replace( \r\n @element, '(.+)(.){37}$','\\\\1'))\r\n", "group": "user", "name": "Array di nome layer caricati nella TOC", "type": "expression" }, { "description": "\n\nCrea il Bounding Box delle particelle tramite sue punti, ovvero la diagonale del BBOX
", "expression": " bounds(\r\n make_line( \r\n make_point (\"p1-lon\" , \"p1-lat\" ),\r\n make_point (\"p3-lon\" , \"p3-lat\" ))\r\n )", "group": "user", "name": "BBOX particelle", "type": "expression" }, { "description": "\n\nConteggio caratteri distinti
esempio:
array_length(
array_distinct(
\nstring_to_array(
\nregexp_replace( 'ABBACD','(.)\\\\B','\\\\1,')))) → 4
", "expression": "array_length(\r\narray_distinct( \r\nstring_to_array(\r\nregexp_replace( 'ABBACD','(.)\\\\B','\\\\1,')))) ", "group": "user", "name": "Conteggio caratteri distinti", "type": "expression" }, { "description": "\n\n'World Map : Natural Earth Data'
\n|| '\\n' ||
\n'© '|| @project_author||' QGIS - '||@qgis_version
", "expression": "'World Map : Natural Earth Data' \r\n|| '\\n' || \r\n'© '|| @project_author||' QGIS - '||@qgis_version", "group": "user", "name": "Copyright_2", "type": "expression" }, { "description": "\n\nDecoration - copyrigth
\nIT: con nome utente e versione di QGIS usata
\n#HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/
\nEN: with username and version of QGIS used
", "expression": "'© '|| @project_author||' QGIS - '||@qgis_version", "group": "user", "name": "Decoration - copyrigth", "type": "expression" }, { "description": "\n\nDecorazione OpenStreetMap Contributors
", "expression": "'© '|| 'OpenStreetMap Contributors' || '\\n' ||\r\n@project_author||' QGIS - '||@qgis_version", "group": "user", "name": "Decorazione OSM", "type": "expression" }, { "description": "\n\nCalcola incremento giornaliero
", "expression": "with_variable(\r\n'my_exp', \r\narray_find( \r\narray_sort( array_agg( \r\nexpression:= \"data\" ,\r\norder_by:= \"data\" ) , ascending:=true ) , \"data\" ),\r\n if( \r\n@my_exp = 0, 0,\r\n( \"tot_att_pos\" -\r\n(array_agg( \r\nexpression:= \"tot_att_pos\" , \r\norder_by:= \"data\" )[@my_exp-1]))))", "group": "user", "name": "Delta-giornaliero", "type": "expression" }, { "description": "\n\nDue JOIN al volo con due layer diversi
", "expression": "with_variable(\r\n'arr',\r\narray_foreach( @layer_ids, regexp_replace( @element, '^(.+?)(_.+)$','\\\\1')),\r\n\r\nCASE \r\nWHEN array_contains(@arr, 'file1') and \r\n\"codice1\" = attribute(get_feature('file1','codice2',attribute($currentfeature,'codice1')),'codice2')\r\nTHEN attribute(get_feature(layer:='file1', attribute:='codice2', value:=attribute($currentfeature,'codice1')),'B')\r\nWHEN array_contains(@arr, 'file2') and \r\n\"codice1\" = attribute(get_feature('file2','codice2',attribute($currentfeature,'codice1')),'codice2')\r\nTHEN attribute(get_feature(layer:='file2', attribute:='codice2', value:=attribute($currentfeature,'codice1')),'B')\r\nELSE 'CIAO'\r\nEND ) ", "group": "user", "name": "Due join al volo", "type": "expression" }, { "description": "\n\nEPSG layer corrente
", "expression": " layer_property( @layer_name,'crs')", "group": "user", "name": "EPSG layer corrente", "type": "expression" }, { "description": "\n\nEffetto Curvy per le linee
", "expression": "make_line( start_point( $geometry), translate( centroid( $geometry), $length/10, $length/10), end_point($geometry))", "group": "user", "name": "Effetto Curvy", "type": "expression" }, { "description": "\n\nEstrae il Foglio e la Particella Catastale a partire da un punto ricandente dentro il perimetro di un poligono.
", "expression": "/*estrae il foglio e la particella catastale*/\r\nwith_variable('fp',\r\n\t\twith_variable('geom3045',\r\n\t\t\t\ttransform($geometry,'EPSG:4326', @project_crs ),\r\n\t\t\t\tget_parcel_info( \r\n\t\t\t\t\t\tx( point_on_surface( @geom3045)),\r\n\t\t\t\t\t\ty( point_on_surface( @geom3045)))),\r\n\tregexp_replace( @fp ,'^(.+)\\\\.(.+)\\\\.(.+)\\\\.(.+)_(.+)\\\\.(.+)$', '\\\\5/\\\\6')\r\n\t\t\t)\r\n", "group": "user", "name": "Estrae Foglio e Particella Catasto", "type": "expression" }, { "description": "\n\nEtichetta tutti i campi con chieve:valore
", "expression": "replace(\r\nreplace (\r\nmap_to_hstore( attributes())\r\n,'\"',''), '=>',' = ')\r\n", "group": "user", "name": "Etichetta All", "type": "expression" }, { "description": "\n\nEtichetta poligoni multipart
", "expression": "/* etichetta poligoni multipart*/\r\ncollect_geometries(array_foreach( \r\ngenerate_series(1,num_geometries( $geometry)),\r\ncentroid(geometry_n($geometry,@element))))", "group": "user", "name": "Etichetta poligoni multipart", "type": "expression" }, { "description": "\n\nle etichette delle isoipse seguono la linea
", "expression": " intersection( \r\n$geometry, buffer(geometry(get_feature_by_id('mline', 1)),1))", "group": "user", "name": "Etichettare isoipse", "type": "expression" }, { "description": "\n\nGeneralizza Isoipse
Link:
http://hfcqgis.opendatasicilia.it/it/latest/esempi/generalizzare_linee.html
Generalizza
\n```
\nCASE
\nWHEN $length > 25
\nTHEN
\nsmooth(simplify($geometry,10),21,0.2)
\nELSE geom_from_wkt( 'MultiLineString EMPTY')
\nEND
\n```
", "expression": "CASE\r\nWHEN $length > 25\r\nTHEN \r\nsmooth(simplify($geometry,10),21,0.2)\r\nELSE geom_from_wkt( 'MultiLineString EMPTY')\r\nEND", "group": "user", "name": "Generalizza2", "type": "expression" }, { "description": "\n\nCrea multilinea con caratteri normali e Grassetto
", "expression": "with_variable(\r\n 'normal_characters',\r\n array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'),\r\n with_variable(\r\n 'bold_characters',\r\n array('𝗮','𝗯','𝗰','𝗱','𝗲','𝗳','𝗴','𝗵','𝗶','𝗷','𝗸','𝗹','𝗺','𝗻','𝗼','𝗽','𝗾','𝗿','𝘀','𝘁','𝘂','𝘃','𝘄','𝘅','𝘆','𝘇','𝗔','𝗕','𝗖','𝗗','𝗘','𝗙','𝗚','𝗛','𝗜','𝗝','𝗞','𝗟','𝗠','𝗡','𝗢','𝗣','𝗤','𝗥','𝗦','𝗧','𝗨','𝗩','𝗪','𝗫','𝗬','𝗭','𝟬','𝟭','𝟮','𝟯','𝟰','𝟱','𝟲','𝟳','𝟴','𝟵'),\r\n replace( upper(\"comune\") , @normal_characters, @bold_characters)\r\n )\r\n)\r\n || '\\n' || \"comune\" ", "group": "user", "name": "Grassetto stessa label", "type": "expression" }, { "description": "\n\nRealizza una JOIN tabellare al volo!
\nNOTE:
\n- `pop_res_regioni_ISTAT20190101` nome del layer 'sinistro` che contiene il dato da visualizzare/usare;
\n- `cod_ISTAT` nome dell'attributo (pop_res_regioni_ISTAT20190101) da correlare con il layer di `destra`;
\n- `cod_reg` nome dell'attributo del layer di `destra` da correlare con `cod_ISTAT`del layer di sinistra;
\n- `pop_res2019` attributo del layer di `sinistra` da usare/visualizzare
\nConcatena le lunghezze dei lati di un poligono
", "expression": "array_to_string(\r\narray_foreach(\r\narray_foreach(\r\ngenerate_series(1, num_geometries( segments_to_lines($geometry))),\r\ngeometry_n(segments_to_lines($geometry),@element)),round(length(@element),2))) \r\n\r\n", "group": "user", "name": "Lunghezza lati poligono", "type": "expression" }, { "description": "\n\n/*EPSG dei due layer*/
\n/*layer lineare*/
\n'Layer lineare →' ||
\nlayer_property('Fiumi_principali_e_secondari_d15155ad_1c93_4a64_af73_9578ce470796','crs')
\n|| '\\n' ||
\n/* layer poligonale*/
\n'Layer poligonale →' ||
\nlayer_property('ProvCM01012020_g_WGS84_2c9debf0_3295_4c0e_a72c_f7ac5a4acefd','crs')
\n/* Transform è la funzione per trasformare da un SR all'altro*/
\n|| '\\n' ||
\ngeom_to_wkt(transform ( $geometry,'EPSG:4326', 'EPSG:32632'))
", "expression": " /*EPSG dei due layer*/\r\n\r\n/*layer lineare*/\r\n\r\n'Layer lineare →' || \r\nlayer_property('Fiumi_principali_e_secondari_d15155ad_1c93_4a64_af73_9578ce470796','crs')\r\n\r\n || '\\n' || \r\n\r\n/* layer poligonale*/\r\n\r\n'Layer poligonale →' || \r\nlayer_property('ProvCM01012020_g_WGS84_2c9debf0_3295_4c0e_a72c_f7ac5a4acefd','crs')\r\n\r\n/* Transform è la funzione per trasformare da un SR all'altro*/\r\n\r\n || '\\n' || \r\n\r\ngeom_to_wkt(transform ( $geometry,'EPSG:4326', 'EPSG:32632'))", "group": "user", "name": "Proprietà Layer", "type": "expression" }, { "description": "\n\nRelazione al Volo
\nNOTE:
- `materiali` nome del layer figlio;
- `n_reparto` nome attributo da conteggiare;
\n- `us` attributo del layer figlio (materiali) da correlare;
- `us_s` nome attributo layer padre
with_variable('toto' ,array_find(
\narray_agg(
\nis_selected( 'rios', get_feature('rios', 'id', "id"))), true) +1,
\ndistance
\n($geometry, geometry(get_feature_by_id('rios',@toto)))<2000)
", "expression": "with_variable('toto' ,array_find( \r\narray_agg(\r\nis_selected( 'rios', get_feature('rios', 'id', \"id\"))), true) +1,\r\ndistance\r\n($geometry, geometry(get_feature_by_id('rios',@toto)))<2000)", "group": "user", "name": "Seleziona entro un valore", "type": "expression" }, { "description": "\n\nsecond(@frame_duration) * @frame_number
", "expression": "second(@frame_duration) * @frame_number", "group": "user", "name": "Un punto nel tempo", "type": "expression" }, { "description": "\n\nQUali e auante variabili ha un oggetto del Layout di stampe?
", "expression": "wordwrap( \narray_to_string(\nmap_akeys(item_variables('mappa1'))),1,',')", "group": "user", "name": "Variabili Oggetto Layout", "type": "expression" }, { "description": "\n\nZoom Level by Keith Jenkins
\nhttps://twitter.com/kgjenkins/status/1217874426563350530
", "expression": "'Zoom Level '||round (29.1402-log(2, @map_scale),2)", "group": "user", "name": "Zoom Level", "type": "expression" }, { "description": "\n\nArray dei campi di un layer.
\nSostituire a @layer il nome del layer di interesse
", "expression": "map_akeys(attributes(get_feature_by_id(@layer,$id)))", "group": "user", "name": "campi di un layer", "type": "expression" }, { "description": "\n\nwith_variable('toto', reverse( geometry(get_feature('percorso','fid',1))),
\narray_find(
\narray_filter(
\narray_sort(
\narray_agg(
\nline_locate_point(@toto, line_interpolate_point( intersection($geometry,@toto ),
\nlength(intersection($geometry,@toto)) /2 ) ))), @element >0),
\nline_locate_point(@toto, line_interpolate_point( intersection($geometry,@toto ),
\nlength(intersection($geometry,geometry(get_feature('percorso','fid',1)))) /2 ) )
\n)
\n)
", "expression": "with_variable('toto', reverse( geometry(get_feature('percorso','fid',1))),\r\n\r\narray_find( \r\narray_filter(\r\narray_sort(\r\narray_agg(\r\nline_locate_point(@toto, line_interpolate_point( intersection($geometry,@toto ), \r\nlength(intersection($geometry,@toto)) /2 ) ))), @element >0),\r\n\r\nline_locate_point(@toto, line_interpolate_point( intersection($geometry,@toto ), \r\nlength(intersection($geometry,geometry(get_feature('percorso','fid',1)))) /2 ) )\r\n) \r\n) ", "group": "user", "name": "elenco ordinato comuni", "type": "expression" }, { "description": "\n\nOccorre creare due variabili
", "expression": "with_variable('caratteri_normali',\r\nstring_to_array(@stile_normale) ,\r\nwith_variable('grassetto',\r\nstring_to_array(@stile_grassetto) ,\r\nreplace( \"COMUNE\" , @caratteri_normali, @grassetto ))) ", "group": "user", "name": "grassetto stessa etichetta", "type": "expression" }, { "description": "\n\nIT: Seleziona l'area più estesa di un layer poligonale
\n#HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/
\nEN: Select the largest area of a polygonal layer
", "expression": "maximum($area) = $area", "group": "user", "name": "max Area", "type": "expression" }, { "description": "\n\nIT: Seleziona l'area meno estesa di un layer poligonale
\n#HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/
\nEN: Select the least extended area of a polygonal layer
", "expression": "minimum($area) = $area", "group": "user", "name": "min Area", "type": "expression" }, { "description": "\n\nPosizionamento etichette per poligoni multipart e geometria non convessa
", "expression": "CASE WHEN \r\nnum_geometries( $geometry)> 1 THEN \r\ncollect_geometries(array_foreach( \r\ngenerate_series(1,num_geometries( $geometry)),\r\npoint_on_surface(geometry_n($geometry,@element))))\r\nELSE centroid($geometry)\r\nEND\r\n\r\n", "group": "user", "name": "posizionamento", "type": "expression" }, { "description": "\n\n