ah ah, ancora una volta fanno capolino le mitiche "banane" :-D

esiste un caso particolarissimo di "Poligono con buco interno"
in cui il software prodotto da ESRI adotta una convenzione che
fa a pugni con gli standard dettati da OGC (vedi figura allegata).
il problema nasce quando il "buco" tocca direttamente il boundary
della figura; capita molto spesso lungo la linea costiera, quando
si incontrano piccolissime insenature.

- in questo case secondo ESRI e' lecito disegnare il solo
  Exterior Ring, che dal punto P entra dentro alla figura,
  descrive il contorno del "buco", e poi riesce fuori passando
  ancora una volta dal punto P.

- ma questo non e' tollerabile secondo le specifiche degli
  standard OGC, perche' qualsiasi Ring non puo' mi avere
  dei punti di autotangenze.
  quindi, secondo OGC, una topologia di questo tipo va
  obbligatoriamente descritta utilizzando un Exterior
  Ring ed un Interior Ring (che ovviamente si intersecano
  sul punto P, ma questo e' legittimo).

ho appena controllato su SpatiaLite lo shape ISTAT 2016:

SELECT comune
FROM com2016_wgs84
WHERE cod_reg = 20 AND
      ST_IsValid(geometry) <> 1;
---------------------------
La Maddalena
Calasetta

in Sardegna ci sono due comuni "stile ESRI", e sono
proprio loro quelli che disturbano.

correggere gli errori fino ad ottenere delle geometrie
impeccabili perfettamente coerenti con i requisiti
richiesti dagli standard OGC e' decisamente molto
semplice:

UPDATE com2016_wgs84
SET geometry = MakeValid(geometry)
WHERE cod_reg = 20
      AND ST_IsValid(geometry) <> 1;

verifica finale:

SELECT comune, ST_IsValid(geometry)
FROM com2016_wgs84
WHERE comune in ('La Maddalena', 'Calasetta');
------------------------
La Maddalena    1
Calasetta       1

ora finalmente e' tutto a posto ;-)

ciao Sandro



_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
796 iscritti al 28/12/2017

Reply via email to