With the release of ArcGIS 10.2, Esri quietly added support for SQLite as a geodatabase container. This is big news as the community has been looking for such support for some time. An open-source RDBMS originally designed for embedded systems, SQLite has a very small footprint and is arguably the most widely deployed RDBMS in the world. (Thanks, in part, to the fact that it is embedded into Adobe Reader and other commonly used software.) Over the years numerous strategies for storing spatial data in SQLite have been developed, ranging from simply storing WKT or WKB geometries in a column up to full extensions like SpatiaLite, which adds OGC-compliant data types and methods. SQLite is also the engine that drives the popular MBTiles implementation used by TileMill and MapBox.
A while back, I blogged the availability of a GDAL/OGR plug-in for ArcGIS desktop by Ragi Burhum at AmigoCloud. At the time, I was hoping to dig into it fairly quickly but that didn’t happen and I’m finally getting to it. Anyone who has followed this blog for a while knows that I have had more than a passing interest in integrating new data sources with ArcGIS over the years. This comes from the fact that, as a technology geek, I am fascinated by all forms of technology and enjoy the process of integration and, as a consultant providing services to the Federal Government, most of my customers have standardized on Esri tools. Integrations such as GeoRSS, PostGIS, GeoCommons and GeoJSON have directly benefitted my customers for real-world applications so I continue look for ways to remove the barriers between them and the data they seek.
The Open Geospatial Consortium (OGC) has published a draft GeoPackage specification for comment. The GeoPackage specification attempts to create a non-proprietary means for packaging and exchanging all geospatial data in all its forms (vector, raster, and tiles). A couple of things that jump out at me:
- It calls out SQLite as the reference implementation of a GeoPackage container
- It calls out SpatiaLite 4 as the reference implementation of a vector feature store
- It does not call out a reference implementation for rasters or tiles
- It does not mention exchange of cartography.
On the SpatiaLite Google Group this morning, Sandro Furieri announced the availability of a beta preview of SpatiaLite 4.1.0. The primary focus of this preview is to get early comment on new capabilities supporting the storage, validation, and query of XML documents.
More information about this update can be found here. Says Sandro:
The main goals of these recently introduced enhancements are:
– storing XML Documents directly within the DBMS
– supporting XML validation
– supporting plain SQL queries on behalf of XML Documents
via canonical XPath expressions
Implementing directly into the Spatial DBMS a common core of XML-oriented features surely is an interesting and useful option, just considering that ISO- and INSPIRE-Metadata or SLD/SE Styles are fully based on XML.
Although I find myself working more with GeoJSON and CartoCSS these days, I think support for XML is a good step for SpatiaLite. There are some very mature use cases based on XML, as Sandro points out. While SLD is not my favorite, this may keep it on my radar. Also, it would be interesting to see how this new capability would possibly affect the evolution of the OGC GeoPackage draft specification.
I am happy to see that this version was developed and contributed back by the US Army Geospatial Center. The fact that they contributed back to the project under a standard open-source license is a nice step from a DoD organization.
The message is quoted below:
I’m really proud to announce you all that finally a rock solid stable and really easy-to-be-deployed binary porting of SpatiaLite for the Android platform is now available for download .
Many thanks to the U.S. Army Geospatial Center  who very generously contributed this highly appreciated and really useful resource under a genuine free software license (LGPLv3).
A detailed tutorial  explaining how-to deploy and use SpatiaLite on Android platforms has been kindly contributed by Andrea Antonello, who spent many long hours during the last week while performing a thorough testing of SpatiaLite-Android, then deciding to publicly share his experiences with the SpatiaLite community. Feel absolutely free to pay a beer to Andrea; he’ll surely appreciate 😉
It looks like it was a busy weekend for Sandro Furieri and the rest of the SpatiaLite team as version 4.0 was announced on Sunday. There are a number of changes, so it’s best to catch up on them before switching over.
I have a couple of Federal customers that are integrating SpatiaLite into their workflows so I’ll need to take a day or so to assess impacts any impacts there. Looks like the perfect way to slide back into work after a long weekend.
In support of some of our ongoing PIM work, we’ve been integrating the Esri File Geodatabase (FGDB) API into some tools. Without going into a level of detail that would hijack this post, one of the many functions performed by some of the tools is to validate physical spatial databases against established data models to analyze compliance and identify differences. These databases may be in Esri or non-Esri formats and we have traditionally handled Esri geodatabases through ArcObjects since it provides a relatively uniform interface across the various flavors of geodatabase.
Of course, ArcObjects requires an ArcGIS license of some sort and we are finding out that this is not always available to users in the field under many situations so the FGDB API gets past that for file geodatabases, at least. Continue reading “ToGeoJson and ToWKT for the Esri FGDB API”