Есть ли способ получить почтовый индекс текущего местоположения пользователя из местоположения, широты или долготы. Если да, то как?
ZipCode из местоположения
Ответы (3)
Да, вы можете ... Все, что вам нужно сделать, это извлечь
http://maps.google.com/maps/geo?ll= широта, долгота
http://maps.google.com/maps/geo?ll=10.345561,123.896932
Или попробуйте поэкспериментировать с этим решением. Я могу дать вам идею.
У вас ведь может быть город? С этими данными json, если у вас есть база данных (на maxmind.com) почтового индекса с этим форматом
CountryCode | Город | Почтовый индекс
PH | Cebu | 6000
Теперь запросите вашу базу данных, относящуюся к коду страны, возвращаемому Google.
ОБНОВЛЕНИЕ
API геокодирования версии 2 был отключен 9 сентября 2013 г.
Вот новый URL-адрес службы API
http://maps.googleapis.com/maps/api/geocode/json?latlng=your_latitude,your_longitude
http://maps.googleapis.com/maps/api/geocode/json?latlng=10.32,123.90&sensor=true
Используйте API геокодера Android!
getFromLocation (double, double, int) - это все, что вам нужно.
Реализация на основе геокодера:
private String getZipCodeFromLocation(Location location) {
Address addr = getAddressFromLocation(location);
return addr.getPostalCode() == null ? "" : addr.getPostalCode();
}
private Address getAddressFromLocation(Location location) {
Geocoder geocoder = new Geocoder(this);
Address address = new Address(Locale.getDefault());
try {
List<Address> addr = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (addr.size() > 0) {
address = addr.get(0);
}
} catch (IOException e) {
e.printStackTrace();
}
return address;
}
Вы также можете получить другую информацию по адресу, например, название города.