ArcGIS付属のspatialite


C:\Program Files (x86)\Arcgis\Desktop10.4\bin\spatialite400x.dllみたいにbinにSpatialiteのDLLが入っているので普通に使える。
ただGEOS依存とか一部のFunctionは使えないかもsys.path.append(installDir)でパスを通す。
※GEOSぽいDLLとかもあるがどこまでつかえるか見てない

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import arcpy
import sqlite3
import os
import sys

if __name__ == "__main__":

  outWsName = r'C:/temp/example.sqlite'
  cpFCName = r'C:/temp/JPN.gdb/japan_ver81_point'
  outName = r'japan_ver81_point'
  
  arcpy.CreateSQLiteDatabase_management(outWsName, 'SPATIALITE')

  arcpy.env.workspace = outWsName

  arcpy.CopyFeatures_management(cpFCName, outName)
  
  #print arcpy.GetInstallInfo()["InstallDir"];
  installDir = os.path.join(arcpy.GetInstallInfo()["InstallDir"], "bin")
  #sys.path.append("C:\Program Files (x86)\Arcgis\Desktop10.4\bin")
  sys.path.append(installDir)
  
  conn = sqlite3.connect(outWsName)
  conn.enable_load_extension(True)

  sql = "SELECT load_extension('spatialite400x');"
  print dllPath
  conn.execute(sql)

  for row in conn.execute("SELECT ST_AsText(shape) FROM " + outName + ";"):
    print(row)
カテゴリー: 開発 タグ: , , パーマリンク