Remarques sur la création de Spatialite en Python
OS Windows7-64bit Python 2.7.10
Téléchargez le binaire de la version Windows à partir de [ici] [link-1] [link-1]:https://www.gaia-gis.it/spatialite-2.3.1/binaries.html
Lorsque vous le décompressez, il y a une DLL dans chaque dossier bin, donc copiez-le dans un dossier qui passe le chemin
Un script simple pour créer un Spatialite contenant POINT, LINESTRING, POLYGON Le sample.spatialite créé peut être référencé avec des outils SIG tels que QGIS.
sample.py
# -*- coding: utf-8 -*-
import sys
import os
import sqlite3
if __name__ == "__main__":
conn = sqlite3.connect("sample.spatialite")
if conn:
print 'connect success'
else:
print 'connect failes'
sys.exit()
conn.enable_load_extension(True)
conn.execute('SELECT load_extension("libspatialite-1.dll")')
conn.execute('SELECT InitSpatialMetaData()')
conn.execute("INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, ref_sys_name, proj4text) VALUES (4326, 'epsg', 4326, 'WGS 84', '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')")
#POINT
conn.execute('CREATE TABLE "point" ("OBJECTID" INTEGER PRIMARY KEY AUTOINCREMENT)')
conn.execute('Select AddGeometryColumn ("point", "Geometry", 4326, "POINT", 2)')
conn.execute('INSERT INTO point (Geometry) VALUES(GeomFromText("POINT(139.69 35.679)",4326))')
#LINESTRING
conn.execute('CREATE TABLE "line" ("OBJECTID" INTEGER PRIMARY KEY AUTOINCREMENT)')
conn.execute('Select AddGeometryColumn ("line", "Geometry", 4326, "LINESTRING", 2)')
conn.execute('INSERT INTO line (Geometry) VALUES(GeomFromText("LINESTRING(139.69 35.68, 139.691 35.681, 139.692 35.68)",4326))')
#POLYGON
conn.execute('CREATE TABLE "polygon" ("OBJECTID" INTEGER PRIMARY KEY AUTOINCREMENT)')
conn.execute('Select AddGeometryColumn ("polygon", "Geometry", 4326, "POLYGON", 2)')
#Exterior CCW - Interior:CW
conn.execute('INSERT INTO polygon (Geometry) VALUES(GeomFromText("POLYGON((139.69 35.682, 139.69 35.681, 139.691 35.681, 139.691 35.682, 139.69 35.682),(139.6902 35.6818, 139.6908 35.6818, 139.6908 35.6812, 139.6902 35.6812, 139.6902 35.6818))",4326))')
conn.commit()
conn.close()
OGC:Simple Feature Access - Part 1: Common Architecture http://www.opengeospatial.org/standards/sfa
liste sql spatialite https://github.com/azavea/acs-alchemist/blob/master/csharp/Azavea.NijPredictivePolicing.Common/init_spatialite.sql
La géométrie est de type XY uniquement
Spatialite (2.3.1) ne semble pas prendre en charge XYZ
Si défini, l'erreur suivante se produira
AddGeometryColumn() error: argument 5 [dimension] current version only accepts dimension=2
Recommended Posts