How to get Geocoder’s results on the LatLng’s country language?
我在应用程序中使用反向地理编码将latlng对象转换为字符串地址。我必须得到的结果不是设备的默认语言,而是给定位置所在国家的语言。有办法吗?这是我的代码:
1 2 3 4 5 6 7 8 9 | Geocoder geocoder = new Geocoder(context, Locale.getDefault()); List addresses; try { addresses = geocoder.getFromLocation(location.latitude, location.longitude, 1); } catch (IOException | IndexOutOfBoundsException | NullPointerException ex) { addresses = null; } return addresses; |
在代码中,geocoder以设备区域设置(语言)返回地址文本。
1从"地址"列表的第一个元素中,获取国家代码。
1 2 |
然后返回国家代码(例如"MX")。
2获取国家名称。
1 2 3 4 5 6 7 8 9 |
3再次实例化locale和geocoder,然后再次请求。
1 2 3 4 5 6 7 8 9 10 11 | Locale locale = new Locale(langCode, countryCode); geocoder = new Geocoder(this, locale); List addresses; try { addresses = geocoder.getFromLocation(location.latitude, location.longitude, 1); } catch (IOException | IndexOutOfBoundsException | NullPointerException ex) { addresses = null; } return addresses; |
这对我很有效,希望对你也一样!