Buongiorno a tutte/i ho usato in passato i VirtualKNN di SpatiaLite soprattutto nei trigger, ma ora volevo usarlo per risolvere il seguente quesito:
dati due tabelle, una con circa 3000 punti e un'altra con circa 10000 linee (assi stradali); trovare, per ogni punto, l'asse stradale più vicino. Per risolvere questo problema ho pensato di usare spatialite 5 e la tabella KNN. Ho importato i due vettori in un geodatabase sqlite (creato con QGIS 3.19 master, che ha implementato spatialite 5.0.1) e ho lanciato la seguente query: SELECT a.fid as pk_strade, a.distance as distance, zz.pk as pk_punti FROM knn as a JOIN inc2k18Palermo as zz WHERE f_table_name = 'strade_palermo' AND f_geometry_column = 'geom' AND ref_geometry = zz.geom AND max_items = 1 la query restituisce un output e quindi creo la relativa tabella (create table as ..), ma impiega circa 200 secondi (sia da db manager di QGIS che da spatialite_gui 2.1.0 beta 1); volevo chiedere se faccio un uso corretto dei virtualKNN oppure ho scritto male la query? ho letto e approfondito i virtualKNN da qui [0] dove gli esempi sono relativi a singola ricerca e non a un intero dataset come nel mio caso. allego db sqlite. https://drive.google.com/file/d/1wi1VJgzgB3tKSePyRkaJc45fdAw6d2wM/view?usp=sharing [0] https://www.gaia-gis.it/fossil/libspatialite/wiki?name=KNN saluti ----- https://pigrecoinfinito.wordpress.com/ -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ 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