[Gfoss] [spatialite] spatialIndex e punti

Totò Fiandaca pigrecoinfinito a gmail.com
Mer 26 Maggio 2021 22:28:42 CEST


Ho il classico problema di determinare, a partire da punti e linee, quale
sia la distanza minima tra punti e linee.

Per velocizzare la query uso lo spatialIndex e la query è la seguente

SELECT a.pk_uid as fid, Min(ST_Distance(a.geom, zz.geom)) AS distance,
    zz.pk_uid as pk_uid_punti, st_shortestline (a.geom, zz.geom) as geom
FROM strade as a, punti as zz
WHERE a.pk_uid IN (
        SELECT rowid
        FROM SpatialIndex
        WHERE f_table_name = 'strade'
           AND search_frame = ST_Buffer(zz.geom, 100))
GROUP by zz.pk_uid
order by 2 desc;

nel  search_frame uso un buffer di 100 m sul punto, cosi facendo mi aspetto
che determini le distanze solo per punti entro 100 m, invece ci sono punti
anche oltre i 100m (fino a 163 m);

non riesco a capire il perché.
allego database per test:
https://drive.google.com/file/d/14keUcBO6IdcVh3N7dx1HL35OynTLq5zc/view?usp=sharing
-- 
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito a gmail.com <pigrecoinfinito a 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.


Maggiori informazioni sulla lista Gfoss