Alternatives to Shapefiles as open-source, cross platform dataset types

As @user890 says, this very much depends on how the data will be used. Mainly there are two ways you could access the data:

  1. By loading it all into memory in one go and then access/query the data in-memory.
  2. By querying for specific features, bounding boxes etc.

Formats like GeoJSON and KML are best suited for cases when you want to load everything in one go. The benefits are that the data can be structured in a way that's more suited for your application. The downsides: larger file sizes (since they are text-based) and the inability to do efficient querying directly from the file.

SQLite/Spatialite is better for querying (SQL), but it's more difficult to structure the data - you have to flatten everything into database tables and then do JOINs (which can be expensive) when querying.

There isn't really a perfect file format that will cover all (but then again shapefiles are far, far from perfect). One alternative to consider is rolling your own application-specific format, but this only works if you don't need to share the data with the outside world.


I think the OGR Vector Format list (link updated) identifies just about every open source format I have ever heard of, and many many more. Each of those formats has its own advantages/disadvantages, so its hard to say which is the 'best'. For mobile apps, I imagine file size will be one of the more important deciding factors.

For mobile applications, I would think sqlite/spatialite format would be the logical format to start with. I know Android provides native support for sqlite. So, assuming you can load the spatialite extensions, you will have a very powerful gis available to you.

Depending on how adventurous you are, it would appear that building gdal for android is not impossible. You could then conceivably have many more formats at your disposal. I am sure many users on this site would be interested if you went this route.


A new format that has come about recently is the Geopackage. This specification is built on top of the SQLite database, so it has the same single-file basis, but with the added benefit of being an OGC standard.
As to file size, it is likely that the storage format is more compact than the .shp and .dbf format for spatial and attribute data used in the Shapefile. Therefore, the GeoPackage is likely to be the same size, or smaller, than the totality of the same features in a shapefile.
This photo shows a the sewer mains in San Diego saved as both Shapefile and GeoPackage. As you can see, they are essentially the same size. Shapefile vs Geopackage Size
Since this format is based on SQLite, it should be ready-made for mobile devices. Many apps already use this database format for storage, so it is a proven technology. It can be used cross platform without any translation required.