Я пытаюсь получить щелкнутый адрес на карте Google с помощью onMapLongClickListener (точка LatLng), используя lat и lng точки и преобразовывая их в адрес с помощью Geocoder. Он работает нормально, если я подключен к Интернет, но если я не приложение, произойдет сбой, потому что метод getFromLocation дает нулевой результат. Итак, я полагаю, что класс Geocoder работает только с подключением. Это так? И есть ли способ, чтобы адрес оставался в автономном режиме?Работает ли Android Geocoder только с подключением к Интернету?
Вот код метода:
public void onMapLongClick(LatLng point) {
List<Address> addresses = null;
try {
addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);
} catch (IOException e) {
e.printStackTrace();
}
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
String country = addresses.get(0).getAddressLine(2);
String str = address + ", " + city + ", " + country;
gMap.addMarker(new MarkerOptions()
.position(point)
.title("Clicked Point")
.draggable(false)
.snippet(address + ", " + city + ", " + country));
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(50);
}
И это разрешения:
<uses-permission android:name="com.example.mappine.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
Я уверен, что кто-то где-то предлагает автономную базу геокодирования, но кто-то не Google, и их продукт, вероятно, не является бесплатным. –
API геокодирования Google свободен от условий (см. [Здесь] (https://developers.google.com/maps/documentation/geocoding/)). – 2015-06-11 09:19:40