Sebagai jawaban atas komentar oleh @Richard Law, nama tabel rtree virtual yang berisi indeks spasial di GeoPackage selalu dinamai sesuai dengan templat
rtree_[table_name]_[geometry_column_name]
Oleh karena itu Anda dapat membuat kueri SQL yang memeriksa keberadaan tabel rtree.
Misalnya Anda dapat memeriksa apakah tabel "table1" memiliki indeks spasial dengan ogrinfo
ogrinfo -sql "SELECT EXISTS(SELECT 1 FROM sqlite_master WHERE tbl_name like 'rtree_table1_%') as has_spatial_index" mygeopackage.gpkg
INFO: Open of `mygeopackage.gpkg'
using driver `GPKG' successful.
Layer name: SELECT
Geometry: None
Feature Count: 1
Layer SRS WKT:
(unknown)
has_spatial_index: Integer (0.0)
OGRFeature(SELECT):0
has_spatial_index (Integer) = 1
Dalam hal ini indeks spasial memang ada. Kalau tidak, itu akan menjadi "0".
Dalam GeoPackage sebuah tabel hanya dapat memiliki satu bidang geometri dan oleh karena itu cukup untuk melakukan pemeriksaan hanya dengan "rtree" dan nama tabel tanpa mengetahui nama bidang geometri sebagai rtree_table1_%
.