Alessandro Frigeri ha scritto:
hai delle novita' riguardo a spatialite e python, esempi?
Ottime notizie per quelli tra di voi che sono interessati ad usare SpatiaLite tramite Python :-)
[grazie mille ad Alessandro Frigeri che mi ha "tirato per la giacchetta" dandomi l'occasione di riesaminare il problema in un quadro più aggiornato] ========================================================= Breve riassunto delle puntate precedenti; SpatiaLite è implementata come una "dynamic loadable extension" di SQLite ... purtroppo, fino a poco tempo fa, le principali distribuzioni pacchettizzate (di Linux, di Python etc) disabilitavano by default qualsiasi possibilità di caricare le extensions (sicurezza paranoica ???), e quindi usare SpatiaLite risultava impossibile oppure assai difficoltoso. Ora però sono inciampato del tutto casualmente su questo: http://code.google.com/p/xenia/wiki/SpatialLite ed ecco a seguire cosa ho verificato "concretamente": -------------------------------------------------------- Linux [io uso Ubuntu 8.04.1 hardy heron ...] -------------------------------------------------------- prima ho provato questa: > sudo apt-get install python-pysqlite2 installa correttamente, ma non supporta le dyn-extensions; evidentemente è una versione obsoleta ... allora ho scaricato i sources dell'ultima versione pysqlite2: https://launchpad.net/ubuntu/jaunty/+source/python-pysqlite2/2.5.0-2ubuntu1/+files/python-pysqlite2_2.5.0.orig.tar.gz quindi ho fatto la build ed ho installato (pochi secondi ...): > python setup.py build > sudo python setup.py install infine ho buttato giù tre righe stupide-stupide giusto per fare un test di accesso ... test.py: ------------- from pysqlite2 import dbapi2 as sqlite DB = sqlite.connect('./test-2.3.sqlite'); DB.enable_load_extension(True); DB.execute('SELECT load_extension("libspatialite.so")'); DBCursor = DB.cursor() strSQL = 'SELECT Name, GeometryType(geometry), area(geometry) '; strSQL += 'FROM regions ORDER BY Area(geometry) DESC'; DBCursor.execute( strSQL ); for row in DBCursor: print( row[0] + ' ' + row[1] + ' ' + str(row[2]) DBCursor.close(); DB.close(); --------------- > python test.py ------------------ SICILIA MULTIPOLYGON 26074081211.3 PIEMONTE MULTIPOLYGON 25391974998.1 SARDEGNA MULTIPOLYGON 24125601024.3 LOMBARDIA MULTIPOLYGON 24069782849.5 TOSCANA MULTIPOLYGON 22971611856.6 EMILIA-ROMAGNA MULTIPOLYGON 22112626674.3 PUGLIA MULTIPOLYGON 19535533607.9 VENETO MULTIPOLYGON 18091146695.8 LAZIO MULTIPOLYGON 17075567463.4 CALABRIA MULTIPOLYGON 15357477642.6 CAMPANIA MULTIPOLYGON 13671884537.6 TRENTINO-ALTO ADIGE MULTIPOLYGON 13636192197.0 ABRUZZI MULTIPOLYGON 10921890033.0 BASILICATA MULTIPOLYGON 10082620411.6 MARCHE MULTIPOLYGON 9801006025.43 UMBRIA MULTIPOLYGON 8511757763.65 FRIULI-VENEZIA GIULIA MULTIPOLYGON 7571067911.64 LIGURIA MULTIPOLYGON 5451586208.43 MOLISE MULTIPOLYGON 4534700124.13 VALLE D'AOSTA MULTIPOLYGON 3309252833.27 SAN MARINO MULTIPOLYGON 60108921.7828 ------------------ FUNZIONA; alla grande ... sbizzaritevi pure ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [email protected] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it.
