API будет сложно получить, в основном из-за прав на данные.
Например, одна из причин, по которой Google Maps для Android имеет множество ограничений API, заключается в том, что Google не владеет всеми данными, необходимыми для создания своих карт и навигации. Они лицензируют некоторые из этих данных, и им приходится жить с этими условиями лицензии.
Лучшим долгосрочным ответом может быть что-то, сделанное из OpenStreetMap , так как оно получено из краудсорсинга и лицензировано Creative Commons. Тем не менее, я не думаю, что у них есть решение, которое в настоящее время отвечает вашим требованиям, по крайней мере, для Android.