I am currently looking at the various libraries that I can use to show a map in my custom Android App. I have found several like Mapsforge, OSMDroid, ArcGIS runtime for Android, Google Maps for Android and so on. I'm sure that I am missing a few.

Is there a comparison chart somewhere about the differences in functionalities and pros and cons of each one?

1 Answer
1

ArcGIS runtime for Android. Seems to be oriented towards showing ArcGIS Server's Mapservices. It can show data in an offline mode, by storing tiles in the compact cache storage format, or by using tile packages.

OSMDroid A component which can be used to show data from Open Street Maps when on-line, and can use tiles for off-line access. It is a raster based option, and you can use Mobile Atlas creator to create tiles from pretty much any WMS service.

MapsForge An excellent library for rendering OSM data on the fly. It has a special optimized tile format, and it's rendering performance is quite good.

Google Maps Android API This is the default mapView in Android, and uses the data from Google Maps. While the Google map application itself can be used in offline mode, as far as I am aware, is not possible to use Google Data in the offline mode. However it is possible to show your own tiles in offline mode. Here is an Excellent example.

Nutiteq This is fully featured library that has many unique features like support for 3D, various OGC services, custom Map API's, offline routing and maps in any projection. It should be noted that the commercial usage of this library for sources other than OpenStreetMap requires the purchase of a license.

Mapbox has recently released an Android SDK, which can be used for online and offline maps.