** Attributes ** location: [http://www.gaia-gis.it/spatialite/%|%gaia-gis.it%|%] author: [mailto:a.furieri@lqt.it%|%Alessandro Furieri%|%] ** Summary ** The SpatiaLite extension enables [SQLite] to support spatial data too (aka [GIS]), in a way conformant to OpenGis specifications ** Description ** * supports standard WKT and WKB formats * implements SQL spatial functions such as AsText(), GeomFromText(), Area(), PointN() and alike * the complete set of OpenGis functions is supported via GEOS, thus comprehending sophisticated spatial analysis functions such as Overlaps(), Touches(), Union(), Buffer() .. * supports full Spatial metadata along the OpenGis specifications * supports importing and exporting from / to shapefiles * supports coordinate reprojection via [PROJ.4] and EPSG geodetic parameters dataset * supports locale charsets via GNU libiconv * implements a true Spatial Index based on the SQLite's RTree extension The VirtualShape extension enables SQLite to access shapefiles as VIRTUAL TABLEs * you can then perform standard SQL queries on external shapefiles, with no need for importing or converting them The VirtualText extension enables SQLite to access CSV/TxtTab files as VIRTUAL TABLEs * you can then perform standard SQL queries on external CSV/TxtTab files, with no need for importing or converting them ---- [JMN] 2009-11-07 Looks interesting - but I see no reference to Tcl on the site. I'm assuming by 'extension' this refers only to it being an extension to SQLite, and that there is no Tcl interface? [SEH] -- Spatialite is an extension to SQLite, and thus the Tcl binding to SQLite can be used to access Spatialite's features. [TR] --This works (using sqlite 3.3.7 or newer): ====== package require sqlite3 sqlite3 db someDBfile.db db enable_load_extension true db eval {select load_extension('/path/to/spatialsqlite/libraryfile')} ====== [andrewshadoura] On Debian, the following works fine: ====== db eval {select load_extension("libspatialite.so.2")} ====== Harm Olthof: using [tdbc] it works like this: ====== package require tdbc::sqlite3 set db_path {/path/to/sqlitefile.sqlite} tdbc::sqlite3::connection create db $db_path set db_handle [db getDBhandle] $db_handle enable_load_extension 1 # The directory containing dll's for geos, proj4, etc must be added to the PATH environment append ::env(PATH) {;} {D:\pshare\bin\spatialite\bin\spatialite-3.0.1-DLL-win-x86} db allrows {SELECT load_extension('/path/to/spatialsqlite/libraryfile')} ====== and if it's a new or non-spatialite database file, you should initialize it: ====== db allrows {SELECT InitSpatialMetaData()} ====== <> Database | Geography