Current Status of Development

26 views
Skip to first unread message

Landon Blake

unread,
Jun 30, 2015, 1:06:59 PM6/30/15
to spatiali...@googlegroups.com
My company is currently evaluating SQLite as a light weight database solution for geospatial data. We had originally planned on building our own set of spatial functions on top of SQLite in Python. It looks like SpatiaLite may already meet 90% of our needs. What is the current status of development? Can SpatiaLite be extended or improved using Python?

Thanks!

Landon

a.fu...@lqt.it

unread,
Jun 30, 2015, 2:29:29 PM6/30/15
to spatiali...@googlegroups.com
On Tue, 30 Jun 2015 10:06:59 -0700 (PDT), Landon Blake wrote:
> What is the current status of development?
>

Hi Landon,

the project started about eight years ago and during all this
time updated versions were regularly released more or less
every six months.
since many years SpatiaLite is an officially supported system
package for all major Linux distributions (Debian, Fedora,
Ubuntu, SUSE and others), is directly supported on MacOsX
by both MacPorts and HomeBrew, is integral part of the
OSGeo4W distribution supporting Windows and is quickly
gaining extended support on Android as well.
last but not least, SpatiaLite is directly supported by
many other popular GIS applications and frameworks.

[1] https://en.wikipedia.org/wiki/SpatiaLite

I suppose all this enables us to legitimately claim that
SpatiaLite is a stable and fully mature project.


> Can SpatiaLite be extended or improved using Python?
>

SpatiaLite simply is a canonical extension to SQLite, and
consequently it's widely supported by many commonly used
language bindings: Java/JDBC, .NET, PHP and others, this
obviously including Python as well.

using Python for developing simple applications based on
sqlite/spatialite surely is a good idea, and AFAIK many
developers and projects already followed this approach
with full success.
just to cite the most obvious reference: QGIS ships lots
of Python plug-ins based on SpatiaLite.

anyway using Python in order to extend SQLite is a
completely different affair.
SQLite has a wonderful flexible architecture allowing
to deploy extension modules in the most painless way:
such extension modules are always expected to be
implemented as binary shared/dynamic libraries, and
the most natural language for developing SQLite's
extensions surely is C (please note: C, not C++).
you can theoretically deploy an extension based on Python
(or Java, Lua or whatever else), but in this case some
further intermediate C module acting as a bridge is surely
required in order to pass arguments and results back and
forward between the two different environments.

looks like an unnecessarily baroque architecture.
and it's rather hard to believe that complex spatial
algorithms could be efficiently implemented using a
language mostly implemented as an interpreter.
C is surely bet fit for this specific scope.

bye Sandro

Landon Blake

unread,
Jun 30, 2015, 3:10:06 PM6/30/15
to spatiali...@googlegroups.com
Thanks for the answer Sandro. I'll do some more digging.

Landon
Reply all
Reply to author
Forward
0 new messages