The API will be difficult to obtain, mainly due to data rights.
For example, part of the reason Google Maps for Android has many API restrictions is because Google does not have all the data necessary to map and navigate. They license some of this data, and they have to live with these license terms.
The best answer for a long time might be something done by OpenStreetMap , as this publication with the crowd and Creative Commons is licensed. However, I donβt think they have a solution that covers your requirements currently, at least on Android.
source
share