On Sun, 13 Jun 2021 10:19:27 +0200, Totò Fiandaca wrote:
Buongiorno,
fino a ieri per dividere delle MultiLineString 32632 con dei punti
utilizzavo, nel mio script SQL, due aggiornamenti della geometria:
1. per fare lo snap
2. per fare lo split

ho scoperto la funziona SnapAndSplit [0] che dovrebbe fare tutto in un unico passaggio, sembra funzionare ma da vari test l'uso di SnapAndSplit mi genera un output con una riga in più rispetto al caso diviso (prima snap e
poi split).

Esiste un motivo teorico oppure devo indagare sulla geometria di input?


Toto',

la SnapAndSplit() si limita semplicemente a chiamare in sequenza
prima la Snap e poi la Split, non fa altro.

vedo pero' che nel tuo SQL c'e' una sottilissima differenza;
tu parti col la Snap, poi applichi la RemoveRepeatedPoints()
ed infine chiami la Split.

nell'altra versione chiami la SnapAndSplit() e poi la
RemoveRepeatedPoints(); non e' la stessa cosa, perche'
nel primo caso elimini i punti doppi _PRIMA_ della Split,
mentre nel secondo casi li elimini _DOPO_ la Split.

per evitare di confrontare le mele con le banane dovesti
provare a chiamare la RemoveRepeatedPoints() sempre come
ultimissimo passaggio.
cosi' a lume di naso potrebbe essere proprio quel passaggio
a fare la differenza, altrimenti trovo difficile spiegare
come facciano a venire fuori due risultati diversi.

domanda: ma non e' che per caso il tuo dataset e'
"sporco" e contiene gia' in partenza punti doppi ?
perche' allora parrebbe piu' saggio iniziare chiamando
la RemoveRepeatedPoints() al primissimo passaggio prima
ancora di procedere con Snap e Split.

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.
764 iscritti al 23/08/2019

Rispondere a