Я использую API Google Maps Android API GeoCoder
Класс для извлечения координат определенного свойства из строки адреса, которую я им даю. Но приложение Android не может найти Lat-Long свойства. Теперь, когда я передаю то же самое String в https://www.google.com/maps/, он может легко найти местоположение на крыше объекта. Он также работает в мобильном браузере.API Карт Google v2 не удается найти Адресное местоположение
Так что же происходит? Почему Google Maps не может найти свойство в моем приложении? Вот мой код ниже:
LatLng propertyLocation = null;
try {
propertyLocation = getLocationFromAddress("Property Address");
} catch (IOException e) {
e.printStackTrace();
}
MarkerOptions mOptions = new MarkerOptions();
mOptions.position(propertyLocation).title("Property Location").snippet(propertyAddress)
.draggable(true);
propertyMarker = googleMap.addMarker(mOptions);
propertyMarker.showInfoWindow();
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(propertyLocation, 15), 3000,
null);
googleMap.setMyLocationEnabled(true);
А вот мой getLocationFromAddress();
Метод:
private LatLng getLocationFromAddress(String subjectPropertyAddress) throws IOException {
Log.i("Subject Property", subjectPropertyAddress);
if (Geocoder.isPresent()) {
Geocoder addressCoder = new Geocoder(LocationActivity.this);
List<Address> addresses = addressCoder.getFromLocationName(subjectPropertyAddress, 2);
if (addresses == null || addresses.isEmpty()) {
Log.i("Addresses", "Could not locate address:");
return null;
} else {
Address location = addresses.get(0);
return new LatLng(location.getLatitude(), location.getLongitude());
}
} else {
Log.i("Geo-Coder", "Not Present");
}
return null;
}
Эй, я пытался ваше решение, но это не сработало. Может быть, это проблема с GeoCoder? – SynerFlow
Какую карту вы используете в xml-макете? Это: «com.google.android.gms.maps.MapFragment» –
Danh DC, да, это 'com.google.android.gms.maps.MapFragment'. – SynerFlow