2014-02-11 2 views
3

Я использую Geocoder для получения адреса из координат lan/lat. Проблема в том, что адрес находится на локальном языке (обычно это название улицы). Как я могу настроить его только на английском языке?Английский вместо локального языка для геокодера

Я использую:

Geocoder geocoder = new Geocoder(Context, Locale.getDefault()); 

Пробовал:

Geocoder geocoder = new Geocoder(Context, Locale.ENGLISH); 
Geocoder geocoder = new Geocoder(Context, Locale.US); 

не повезло.

+0

'Geocoder геокодера = новый Geocoder (MainApplication.getAppContext(), Locale.ENGLISH);' работает для меня. API 16 –

ответ

1

API 19
Ответ не совсем корректный, я думаю.
У меня только что был этот случай, когда я установил языковой стандарт GeoCoder на английский, тогда я ошибаюсь в названиях улиц.
Он не переводит их, но он удаляет специфические для языка детали, это беспокоит меня.

"Straße" стал, например, "St".

API-интерфейс геокодирования Google Maps отличается в этом отношении, когда я устанавливаю английский язык, улицы возвращаются правильно, а только проверенная страна была переведена (Австрия вместо Österreich).

Поскольку многие люди используют API HTTP в качестве резервного в случае сбоя Geocoder, это может быть проблемой, как в моем случае.
Мое решение состоит в том, чтобы всегда использовать локаль страны для ОБА API, а затем результаты совпадают.
HTTP API имеет параметр языка &, который понимает значение Local.toString() как значение;
Геокодер может быть инициализирован, как в исходном вопросе.

0

Я не думаю, что это возможно. Названия улиц - это названия улиц. Они не переводятся. У вас есть имя. Ваше имя - ваше имя, независимо от того, на каком языке может говорить кто-либо. Вы не переводите свое имя, когда разговариваете с людьми на иностранных языках.

Геокодер - это просто база данных, которая сопоставляет геокоординаты и другие права. В общем, вы не найдете несколько имен для улицы. Есть несколько примеров перевода имен (например, названия городов могут быть переведены на несколько языков), но они являются исключением, а не правилом.

+0

Название улицы не обязательно должно быть переведено, как показано на английском языке. Например, ваше имя - Давид, на китайском - его 大卫. Карты Google можно увидеть на разных языках. В Израиле есть улица Бен-Гуриона, через Geocoder мой результат - בן-גוריון, то есть Бен-Гурион на английском языке, но я хочу, чтобы это было показано на английском, а не на иврите. – Dim

+0

@ DanM посмотреть [здесь] (http://stackoverflow.com/questions/19059948/why-geocoder-from-google-maps-is-returning-japanese-character/19060980#19060980). Если название улицы помечено таким образом, вы не можете много сделать. Перевод не доступен для всех данных (как уже сказал Дэвид). Единственный способ - перевести его самостоятельно. –