я хочу получить широту и долготу, используя почтовый индекс для приложения Android
получить широту и долготу, используя почтовый индекс
Ответы (4)
Это гораздо более простое решение, при условии наличия сервисов геокодера:
final Geocoder geocoder = new Geocoder(this);
final String zip = "90210";
try {
List<Address> addresses = geocoder.getFromLocationName(zipCode, 1);
if (addresses != null && !addresses.isEmpty()) {
Address address = addresses.get(0);
// Use the address as needed
String message = String.format("Latitude: %f, Longitude: %f",
address.getLatitude(), address.getLongitude());
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
} else {
// Display appropriate message when Geocoder services are not available
Toast.makeToast(this, "Unable to geocode zipcode", Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
// handle exception
}
Конкурентов Google в геокодировании нет :)
Вам нужно просто сделать запрос http Get для следующей ссылки. Вот ссылка
Просто измените элемент почтового индекса в соответствии с вашими требованиями. И наслаждаться.
Для получения дополнительной информации перейдите по ссылке. Справочник по геокодированию карт
Вы можете использовать YQL вот так: выберите центроид из geo.places, где text="ZIPCODE_HERE"
Вам придется использовать службу геокодирования, например те, которые предоставляются Google или свободно доступный Номинатим. Обратите внимание, что, поскольку вы будете указывать только почтовый индекс, вы можете не получить желаемых результатов из-за неточности самого адреса.