Spatialiteをふれてみる

http://www.gaia-gis.it/spatialite/ から spatialite-gui と spatialite-tools を落としてきました。前者はGUI。後者はCUI

データベース作成 … これでいいのか?

とりあえず GUI を起動。
"Files" → "Creating a New (empty) SQLite DB" で、適当なところに空のデータベースを作成。この時点で、geom_cols_ref_sys, geometry_columns, spatial_ref_sys とが生成されます。
CUI でもできるならその方が良いんだけど、ちょっとわかってないです。

シェープファイルをインポート

spatialite.exe (dbファイル)
...
spatialite> .loadshp (シェープファイルのプレフィクス) (テーブル名) (文字コード) [(CRS) [(ジオメトリカラム名)]]

たとえば、国土数値情報(行政区域) を KsjTool でシェープにしてファイル名が N03-100329_34_EC01.shp になっている場合で、テーブル名を mncpl、カラム名を the_geom としたい場合には、次のようにします。

spatialite> .loadshp N03-100329_34_EC01 mncpl cp932 4612 the_geom

"cp932" は Shift JIS に拡張を含んだ文字セットのコードです。
4612 は、EPSG:4612 (JGD2000 経度緯度) です。

関数を試してみる

東経 133度、北緯 34.4度のポイントを含む市町村コードを求める文です。

spatialite> select aac from mncpl where within(GeomFromText('point(133 34.4)'),the_geom);
34204

ということで、34204 (三原市) が出ました。