金子邦彦研究室3次元,地図インタラクティブ,ダイナミックな地図(OpenStreetMap を利用)SpatiaLite を使ってみる

SpatiaLite を使ってみる

Windows で SpatiaLite を使ってみる.

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

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

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

  1. http://download.geofabrik.de/ を開く
  2. Antarctica の右横の「.shp.zip」をクリック.

    [image]
  3. antarctica-latest-free.shp.zip がダウンロードが始まるので確認する.

    [image]
  4. ダウンロードしたファイルを展開(解凍)する.
  5. 展開(解凍)してできたファイルを確認する.

    [image]

    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) が選べる.どちらを選んだかは覚えておくこと.

      [image]

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

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

      [image]
    4. ファイルのダウンロードが始まる

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

      [image]
    6. 確認のため,spatialite_gui.exe を実行してみる.
    7. 新しい画面が開くので確認する.

      [image]

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

      1. 先ほどダウンロードした ESRI Shape ファイルを使う.
      2. Load Shapefile」をクリック

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

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

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

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

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

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

        [image]

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

      [image]
      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 3の入手 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