Jak na prostorová data v databázi SQLite?

25. 11. 2013
  • Serverový GIS
  • Další
  • ArcGIS 10.2
  • ArcGIS 10.3

V programu ArcGIS lze s daty v SQLite pracovat a přistupovat k těmto datům i prostřednictvím SQL dotazů (avšak bez geodatabázové funkcionality). V otevřeném formátu SPATIALITE jsou tato data taktéž dostupná i z celé řady jiných GIS aplikací. Pro uložení prostorových dat je ale potřeba, aby vybraný formát ST_GEOMETRY/SPATIALITE databáze SQLite podporovala, resp. aby v této databázi byla implementována příslušná nadstavba. (V databázi se totiž musí vytvořit určité tabulky, pohledy, indexy a triggery pro ukládání metadat o prostorových datech.)

Esri nabízí ve svém geoprocessingovém modulu arcpy funkci CreateSQLiteDatabase, která vytvoří novou databázi (jméno a umístění SQLITE souboru řídí první parametr) a v ní implementuje příslušnou nadstavbu (dle hodnoty druhého parametru buď ve formátu ST_GEOMETRY, nebo SPATIALITE). Vytvořit databázi ­SQLite s rozšířením pro prostorová data lze tedy jednoduše dvěma řádky v jazyku Python:

import arcpy

arcpy.gp.CreateSQLiteDatabase('C:/TEMP/new_empty.sqlite', "ST_GEOMETRY")

Na počítači, kde je nainstalován ArcGIS for Desktop, lze taktéž již existující SQLite databázi (musí mít koncovku SQLITE) rozšířit o nadstavbu pro formát ST_GEOMETRY. Stačí se připojit do databáze sqlite administrační utilitou sqlite3 a spustit:

SELECT load_extension('stgeometry_sqlite.dll','SDE_SQL_funcs_init');

SELECT CreateOGCTables( );

Knihovna stgeometry_sqlite.dll, která se nachází v umístění instalace ArcGIS (obvykle C:\Program Files (x86)\ArcGIS\Desktop10.2\DatabaseSupport\SQLite\<Windows64/Windows32>), musí být před samotným voláním funkce load_extension překopírována do adresáře s sqlite3. (V daném umístění naleznete i knihovny pro platformu Linux). Obdobně lze postupovat i u knihovny pro formát SPATIALITE. Databáze SQLite nabízí v obou formátech uložení velmi širokou nabídku funkcí pro práci s prostorovými daty.