SpatiaLite

Z GeoWikiCZ

Prostorové rozšíření SpatiaLite umožňuje ukládat v databázi SQLite geoprostorová data - podobně jako např. PostGIS pro databázový systém PostgreSQL.

Založení databáze

Návod platí pro server josef.

Databáze se vytvoří automaticky po spuštění interpretu SpatiaLite. V tomto případě se databáze uloží do souboru gisdb.sqlite. Pokud ale zůstane databáze po opuštění interpretu prázdná, soubor se nevytvoří.

spatialite gisdb.sqlite

Příkazem

.read /usr/local/share/spatialite/init_spatialite-2.3.sql ASCII

nahrajeme metadatové tabulky geometry_columns a spatial_ref_sys. Nyní je databáze připravena pro práci s geoprostorovými daty.

spatialite> .tables
geom_cols_ref_sys  geometry_columns   spatial_ref_sys  
spatialite> .exit

Import dat

Pro tento účel můžeme vyexportovat data např. z cvičné databáze PostGIS.

pgsql2shp pgis_student gis1.obce

Data naimportujeme např.

spatialite_tool -i -shp obce -d gisdb.sqlite -t obce -c UTF-8 -s 2065 -g the_geom

anebo přímo z interpretu SpatiaLite

spatialite> .loadshp ./obce obce UTF-8 2065 the_geom

Ukázka jednoduchého dotazu

spatialite> SELECT nazev,Area(the_geom)/1e6 AS plocha FROM obce ORDER BY plocha DESC LIMIT 5;
Praha|496.077202708984
Hradiště|328.857295861328
Brdy|259.774799202647
Libavá|238.31301229512
Brno|230.03067746875

OGR

Pro import/export dat lze využít i knihovnu OGR, která volitelně SQLite podporuje.

Příklad konverze dat z PostGIS do SpatiaLite.

ogr2ogr -f SQLite gisdb.sqlite pg:dbname=pgis_student fgcz.obce

Virtuální tabulky

Příklad přípojení dat ve formátu Shapefile jako virtuální tabulku.

CREATE VIRTUAL TABLE obce USING VirtualShape(obce, UTF-8, 2065);

Vizualizace dat v QGISu

QGIS nabízí ve vývojové verzi (1.1.0) zásuvný modul pro SpatialLite. Na serveru josef spustíme tuto verzi QGISu příkazem

/usr/local/qgis-trunk/bin/qgis
Přidání SpatiaLite vrstvy v QGISu (1)
Přidání SpatiaLite vrstvy v QGISu (2)

Poznámka: V současné době neumožňuje QGIS vizualizovat data připojené jako virtuální tabulky.

Související články

Externí odkazy