Геокодер Android — разные результаты при вызове из разных географических местоположений

#android #geolocation

#Android #геолокация

Вопрос:

В моей программе для Android есть следующий код

 List<Address> addressList = geoCoder.getFromLocation(37.790551,-122.433931, 1);
if (!addressList.isEmpty()) {
            address = addressList.get(0);
            String number = address.getSubThoroughfare();
            String streetName = address.getThoroughfare();
.....
}
  

По сути, это запрос на получение названия улицы (отсюда 1 ) по широте и долготе в Сан-Франциско.

Когда я запускаю эту программу на телефоне в Европе (в частности, в Ирландии), number возвращается как 2250-2290 и streetname возвращается как Fillmore St .

Когда я прошу друга запустить тот же код на своем телефоне в Калифорнии, number есть null и streetname до сих Fillmore st пор есть.

Я видел, что другие вопросы SO ссылаются на настройки региона, но возможно ли, что географическое местоположение может повлиять на запрос в Android API?

В API геокодирования Javascript упоминается смещение региона. Интересно, возможно ли сделать что-то подобное в Android API. Я пытался создать геокодер как

 Geocoder geoCoder = new Geocoder(getApplicationContext(), Locale.US);
  

но это не воссоздает результат, основанный на Калифорнии.

Ответ №1:

Из-за того, что люди запускают идентичный код на разных континентах, кажется, что местоположение действительно является фактором. Геокодирование Javascript позволяет вам указать region хотя

Ответ №2:

На телефонах установлены разные версии Android? Кроме того, следует иметь в виду еще одну вещь: «Для класса Geocoder требуется серверная служба, которая не включена в основную платформу Android». Итак, если два телефона обращаются к разным внутренним службам для запроса геокодера, это может объяснить вывод, который вы видите.

Я думаю, что с Android 1.5 они включили реализацию серверной службы Google API для Geocoder. Я не знаю, вносили ли новые версии Android и Google API изменения в реализацию геокодера, которые могут давать вам другие результаты, или это происходит из какой-то другой серверной службы.

Комментарии:

1. Оба работают под управлением froyo. Как вы можете указать серверную часть?