6 votos

Índices espaciales en archivos de GeoPackage

Estoy trabajando con archivos de GeoPackage construidos QGIS3. He intentado ejecutar algunas consultas espaciales pero era muy lento, así que me gustaría acelerar con índices.

Después de algunas lecturas he probado

He probado varias versiones pero la 'select rowid de SpatialIndex' siempre devuelve un conjunto vacío. Cada mesa tiene su rtree_ *. ¿Qué pasa?

Además, necesita utilizar geometrías de otra mesa como search_frame, es posible?

4voto

Joe Puntos 16

El "search_frame directo de" sólo es utilizado por el SpatiaLite de la biblioteca. GeoPackage estándar no define un acceso directo pero usted debe usar una subconsulta o participar en la consulta. Consulta que es la utilización de r-índice de árbol con la sub-consulta:

 SELECT * FROM the_table WHERE fid IN 
       (SELECT id FROM the_rtree WHERE 
        xmin <= bbox_xmax AND xmax >= bbox_xmin AND
        ymin <= bboy_ymay AND ymay >= bboy_ymin);

Consulta que es la utilización de r-índice de árbol con la combinación:

 SELECT * FROM the_table t JOIN the_rtree r ON t.fid = r.id
WHERE r.xmin <= bbox_xmax AND r.xmax >= bbox_xmin AND
      r.ymin <= bboy_ymax AND r.ymax >= bboy_ymin;

Este blog se ocupa de las diferencias entre estos dos métodos http://erouault.blogspot.fi/2017/03/dealing-with-huge-vector-geopackage.html.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X