Problema Y Pruebas:
Estoy tratando de crear un spatialite archivo con el siguiente fragmento de código. Sin embargo, el outDataSource objeto se le asigna NoneType y todos los posteriores (unshown) código de falla. Estoy pensando que el problema es con el spatialite instalación por dos razones:
1) a la hora de elegir 'ESRI Shapefile' como el controlador y dejar las opciones a=['SPATIALITE=yes"] el outDataSource se crea correctamente y todos los posteriores códigos funciona según lo previsto.
2) Cuando dejo el conductor como 'SQLite' pero echa un vistazo a las opciones=['SPATIALITE=yes'], la no-espacial de tablas sqlite está creado de hecho. Así, cualquier idea en lo que me estoy perdiendo o podría haber hecho de forma incorrecta para establecer el vínculo entre la OGR y spatialite?
Medio ambiente:
Estoy desarrollando sobre Spyder 2.3.0 rc, con Python 2.7.7 32bits, Qt 4.8.6,
PyQt4 (API v2) 4.10.4 en Windows, como el entregado por la Anaconda-2.0.1-Windows-x86
ejecutable. Además, el desarrollo de los comentarios al final del código de describir los pasos para instalar spatialite.
Código:
# standard modules
import os
# third party modules
from osgeo import ogr
##############################################################################
# create a new spatialite output file
##############################################################################
outputGridfn = os.path.join(os.getcwd(), 'grid.sqlite')
outDriver = ogr.GetDriverByName('SQLite')
outDataSource = outDriver.CreateDataSource(outputGridfn,
options=['SPATIALITE=yes'])
##############################################################################
# Development notes
##############################################################################
# SPATIALITE functionality requires the following work
# Step 0: Download DLL's from
# latuviitta.org/documents/Spatialite_4.0_test_with_jre_1.6.zip
# Step 1: Unzip and copy the spatialite DLL into the Python DLL library
# Recompile the sqlite3 DLL from the amalgamation as follows
# Step 0: Add '#define SQLITE_ENABLE_RTREE' to the sqlite3.c file
# Step 1: gcc -c sqlite3.c
# Step 2: gcc -shared -o sqlite3.dll sqlite3.o
# Step 3: Place the DLL in the python DLL library
# Add libgeo-3-3-1.dll to python DLL library