トップページ -> データベース研究スタート -> インタラクティブ,ダイナミックな地図(OpenStreetMap を利用) -> SpatiaLite を使ってみる
[サイトマップへ]  

SpatiaLite を使ってみる

Windows で SpatiaLite を使ってみます.

キーワード: SpatiaLite, SQLite3, ESRI Shape ファイル, Geofabrik


ESRI Shape サンプルファイルの入手

次の手順で, http://download.geofabrik.de/ から ESRI Shape ファイルをダウンロードする.

  1. http://download.geofabrik.de/ を開く

  2. Antarctica の右横の「.shp.zip」をクリック.

  3. antarctica-latest-free.shp.zip がダウンロードされるので確認する.

  4. ダウンロードしたファイルを展開(解凍)する.

  5. 展開(解凍)してできたファイルを確認する.

SpaitaLiteのインストール

  1. The Gaia-SINS federated projects の Web ページ」を開く

    http://www.gaia-gis.it/gaia-sins/index.html

  2. MS Windows binariscurrent stable version をクリック

    x86 (32 bit), amd64 (64 bit) が選べる.どちらを選んだかは覚えておくこと.

    以下,amd64 (64-bit) を選んだとして説明を続ける.

  3. 画面が変わる.「spatialite_gui ...」をクリック.

  4. ファイルがダウンロードされる

  5. ダウンロードしたファイルを復元すると spatialite_gui.exe ができるので確認する.

  6. 確認のため,spatialite_gui.exe を実行してみる.

  7. 新しい画面が開くので確認する.

    以下の手順で動作確認する.

    1. 先ほどダウンロードした ESRI Shape ファイルを使う.

    2. Load Shapefile」をクリック

    3. 先ほどダウンロードした ESRI Shapefile を選ぶ.

    4. 文字コードとして「UTF_8」を選び,「OK」をクリック.

    5. http://download.geofabrik.de/ から ESRI Shape ファイルをダウンロード

    6. 画面が変わるので確認.

    7. 「gis.osm_natural_a_free_1」のようなテーブルがあるので, 右クリックメニューで,「Edit table rows」を選ぶ.

    8. テーブルの中身が表示される.(表示されたらOK)

    以下書きかけ ogr2ogr sample.shp sample.json

    ogr2ogr -f "ESRI Shapefile" dst.shp src.shp -dialect SQLITE -sql "select simplify(geometry, 0.001) from org" mod_spatialite.dllとmod_spatialite.soの確認 システムの環境変数PATH SQLite の入手 SELECT load_extension('/usr/local/lib/mod_spatialite.so'); SELECT InitSpatialMetaData(); import sqlite3 import os # mod_spatialiteのあるフォルダをPATHに加える os.environ["PATH"] = os.environ["PATH"] + ';C:\\tool\\spatialite\\mod_spatialite-4.2.0-win-x86' cnn = sqlite3.connect('database/gyouseikuiki.sqlite') # mod_spatialiteの読み込み cnn.enable_load_extension(True) cnn.execute("SELECT load_extension('./mod_spatialite-4.2.0-win-x86/mod_spatialite.dll');") sql = """ SELECT N03_001, N03_002, N03_003, N03_004, N03_007, AsGeoJson(Geometry) FROM "N03-14_140401" WHERE MBRContains("N03-14_140401".Geometry,GeomFromText('POINT(139.692101 35.689634 )')) """ ret = cnn.execute(sql) for r in ret: print('----------------------------') print(r[0].encode('utf_8') ) print(r[1].encode('utf_8') ) print(r[2].encode('utf_8') ) print(r[3].encode('utf_8') ) print(r[4].encode('utf_8') ) print(r[5].encode('utf_8') ) SpatiaLite 4.2.0 SQL functions reference list http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html The SpatiaLite Cookbook http://www.gaia-gis.it/gaia-sins/spatialite-cookbook/index.html pyspatialite は? http://www.gaia-gis.it/spatialite-2.4.0-4/splite-python.html

問い合わせ先: 金子邦彦(かねこ くにひこ)