Maurizio, sto lavorando con dataset enormi (almeno per me) con quasi 3 M di righe (MultiLineString), devo fare una cosa apparentemente semplice, *split line with line* usando la stessa tabella e dividere le linee nei casi X e T (con nodo e senza nodo)
Per semplificare faccio test con un sottoinsieme della tabella originale, con una tabella di circa 120k righe, il mio vecchio laptop impiega circa 3 minuti utilizzando spatialIndex e variabili (stored procedure); oltre ad acchiappare i casi X (crosses) e i casi T (che risolvo estraendo i vertici e filtrando per distanza) il mio compito è di ottimizzazione, perché su milioni di righe potrebbe impiegare molto tempo. saluti Il giorno dom 13 giu 2021 alle ore 12:39 Maurizio Trevisani < maurizio.trevis...@gmail.com> ha scritto: > Totò, > a cosa stai lavorando? > Piano piano stai scoprendo tutte le ultime meraviglie di Spatialite!!!! > > Poi scoprirai la topologia..... > > Spatialite è il DBMS spaziale più interessante del momento. > > Ciao, > Grazie, > Maurizio > > Il dom 13 giu 2021, 11:27 <a.furi...@lqt.it> ha scritto: > > > 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 > _______________________________________________ > 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 -- *Ing. Salvatore Fiandaca* *mobile*.:+39 327.493.8955 *m*: *pigrecoinfin...@gmail.com <pigrecoinfin...@gmail.com>* *C.F*.: FNDSVT71E29Z103G *P.IVA*: 06597870820 *membro QGIS Italia - http://qgis.it/ <http://qgis.it/>* *socio GFOSS.it - *http://gfoss.it/ *blog:* * https://pigrecoinfinito.com/ <https://pigrecoinfinito.com/> FB: Co-admin - https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>** <https://www.facebook.com/qgis.it/> * *TW: <http://goog_95411464>**https://twitter.com/totofiandaca <https://twitter.com/totofiandaca>* 43°51'0.54"N 10°34'27.62"E - EPSG:4326 “Se la conoscenza deve essere aperta a tutti, perchè mai limitarne l’accesso?” R. Stallman Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E' vietata qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso. _______________________________________________ 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