Вы не можете сделать это автоматически, внедрив какие-либо API, предоставленные Google. Однако есть несколько ручных способов. Необходимо составить базу данных границ города:
Эта ссылка возвращает детали города. Например, при поиске «Нью-Йорк» будет показана граница Нью-Йорка, например:
Теперь, если вы нажмете кнопку детализации, вы получите идентификатор OSM, который для Нью-Йорка равен «175905».
Теперь вам нужно перейти на эту ссылку , вставить этот OSM в текстовое поле Id of relation
и отправить. Вы получите полилинию информации во многих форматах. Как и в Нью-Йорке - вам нужно сохранять информацию о полилинии для каждого города, который вы хотите включить в свое приложение.
Теперь задача становится легкой:
Добавьте это в свои зависимости:
dependencies {
compile 'com.google.maps.android:android-maps-utils:0.5+'
}
и проверьте, подпадает ли ваше текущее местоположение под любой полигон из вашей базы данных городов:
PolyUtil.containsLocation(yourLocation, cityPolyPointsList, false);