difference

Restituisce una geometria che rappresenta la porzione della geometry_a che non interseca la geometry_b.

Sintassi

difference(geometry_a, geometry_b)

Argomenti

  • geometry_a una geometria
  • geometry_b una geometria

Esempi

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) LINESTRING(4 4, 5 5)

../../_images/difference1.png

../../_images/difference31.png

Espressione:

-- differenza linea a - linea b
difference( 
make_line(  -- linea a
	start_point(geometry(get_feature_by_id('linea_a',0))), 
	start_point($geometry),
	end_point(geometry(get_feature_by_id('linea_a',0)))),
make_line(  -- linea b
	start_point($geometry), 
	end_point(geometry(get_feature_by_id('linea_a',0))),
	end_point($geometry))
				)
-- NB: -- è importante ordine delle geometrie
-- a - b è diverso da b - a

../../_images/difference32.png

-- differenza linea b - linea a
difference( 
make_line( -- linea b
	start_point($geometry), 
	end_point(geometry(get_feature_by_id('linea_a',0))),
	end_point($geometry)),
make_line(  -- linea a
	start_point(geometry(get_feature_by_id('linea_a',0))), 
	start_point($geometry),
	end_point(geometry(get_feature_by_id('linea_a',0))))
				)
-- NB: -- è importante ordine delle geometrie
-- a - b è diverso da b - a

nota bene

osservazioni

Esempio di sopra:

../../_images/difference2.png