Spatialite を使ってみる

SpaliteLiteSQLite 3の BLOB 型の属性に空間データを格納し,各種の操作や,空間索引の生成などが簡単にできるようにしたものである.

主要な機能は次の通りである.

Spatialite での主なデータ型は以下のとおりである.

Spatialite の cookbook は https://www.gaia-gis.it/fossil/libspatialite/wiki?name=misc-docs

Spatialite の SQL 関数の詳しい説明は: https://www.gaia-gis.it/gaia-sins/spatialite-sql-latest.html

このページでは,次のことを説明する.

Ubuntu での SpatiaLite のインストール手順については別のページで説明している.

SpatiaLite データベースファイルの生成とメタデータのロード

ESRI Shape ファイルの読み込み

ESRI Shape ファイルのへの書き出し

書き出しコマンドの書式は次の通り

spatialite_tool -e -shp <ファイルのベース名> -d <SQLite 3 データベース名> -t <テーブル名> -g geom -c CP1252 [--type POINT]

OpenStreetMap データのファイルからの読み込み

Spatialite の関数を使ってみる

  1. 前準備として、Spatialite バージョン 3.0.0(あるいはそれ以降) をインストールしておく
  2. 試しにデータベースを作りたい.

    そこで、地図データ」のページで説明している. ファイル fukuoka-city.osm を使うことにする(ファイル fukuoka-city.osm を準備する)

    次のコマンドで、データベースを作る

    spatialite_osm_map -o <ファイル名> -d <SQLite 3 データベース名>
    

    エラーメッセージが出ていないことを確認する.

    • 行数
      select count(*) from pg_building;
      
    • Geometry のテキスト表示
      select *, AsText(Geometry) from pg_building;
      
    • Geometry の16進表示
      select *,HEX(Geometry) from pg_building;
      
    • GeometryType の表示
      SELECT *, GeometryType(Geometry) FROM pg_building;
      
    • Geometry の Boundary の 表示
      SELECT *,AsText(Boundary(Geometry)) FROM pg_building;
      
    • Geometry の Envelope の 表示
      SELECT *,AsText(Envelope(Geometry)) FROM pg_building;
      
    • Geometry の MBR 表示
      SELECT *, MbrMinX(Geometry), MbrMinY(Geometry), MbrMaxX(Geometry), MbrMaxY(Geometry) FROM pg_building;