touches

Verifica se una geometria tocca un”altra. Restituisce vero (1) se le geometrie hanno almeno un punto in comune, ma i loro interni non si intersecano.

Sintassi

touches(geometry a, geometry b)

Argomenti

  • geometry a una geometria
  • geometry b una geometria

Esempi

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) 1
  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) 0

../../_images/touches1.png

nota bene

osservazioni

Usando algoritmo Seleziona per espressione presente in strumenti di processing oppure https://docs.qgis.org/2.18/en/_images/mIconExpressionSelect.pngicona (ctrl+F3):

espressione usata:

touches(geometry(get_feature( 'province_rt_rt','pk_uid','46')),$geometry)

dove:

  • geometry a è geometry(get_feature( 'province_rt_rt','pk_uid','52'))
  • geometry b è $geometry

../../_images/touches2.png

seleziono tutti i comuni touches (toccati) dalla provincia con pk_uid46 (Siena)

PS: potrei anche negare (NOT) l”espressione per selezionare il complementare (tutti i comuni tranne quelli toccati dalla provincia di Siena).

NOT touches(geometry(get_feature( 'province_rt_rt','pk_uid','52')),$geometry)

../../_images/touches3.png