Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am working on software that is very ESRI oriented, but a future version will likely not be using ESRI software. It uses Shapefiles and Geodatabases. I'm planning on getting all of my data to Shapefiles in anticipation for future versions of the software that will likely be on Android and other mobile devices. It appears that Shapefiles are the most common datatype for features in the open-source GIS world, but what are the others, and what benefits do they bring? I'm familiar with GeoJSON and KML, but I'm sure there are others.

I would like to know all options, but I am particularly interested in dataset types best suited for storing on mobile devices (the data must be accessible without an internet connection).

share|improve this question
    
Store the data in a database (Oracle, Postgres) - the problem is the file size for Mobile apps - smartphones can support bigger files but still limited in processor/RAM. Nokia have Nokia Maps which stores compressed files (.crt) on the phone for offline mode.But maps do need to be download first from a database. –  Mapperz Dec 22 '11 at 14:49
1  
add comment

3 Answers 3

up vote 14 down vote accepted

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.

share|improve this answer
add comment

I think the OGR Vector Format list 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.

share|improve this answer
add comment

The options really depend on what language you will use and how the data will be used. Android will most likely be Java. Every option will be a kind of cost/benefit comparison based on that decision. All data formats are optimized for certain use cases.

The next question is how the data will be used. Will the mobile app just read spatial data? Or will it be reading and writing data frequently? How often will it exchange data with other devices or servers?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.