这是我的方法,用于将JSONObject
解析为字符串。
private Map<String, String> parseJSONObject (JSONObject json) throws JSONException {
Map<String, String> city = new HashMap<>();
JSONArray Results = json.getJSONArray("results");
JSONObject zero = Results.getJSONObject(0);
JSONArray address_components = zero.getJSONArray("address_components");
for (int i = 0; i < address_components.length(); i++) {
JSONObject zero2 = address_components.getJSONObject(i);
String long_name = zero2.getString("long_name");
JSONArray mtypes = zero2.getJSONArray("types");
String Type = mtypes.getString(0);
city.put(Type, long_name);
}
return city;
}
要从API获取数据,我使用该网址:http://maps.googleapis.com/maps/api/geocode/json?address=CITY_NAME&sensor=true
。
我的问题是:如何设置我下载的数据的默认语言?例如,作为administrative_area_level_1
,我得到了Masovian Voivodeship
而不是Mazowieckie
这就是我所需要的(波兰省的名称)。
答案 0 :(得分:0)
正如您在documentation中找到的那样,有一个用于设置结果语言的可选参数。
language - 返回结果的语言。请参阅支持的域语言列表。请注意,我们经常更新支持的语言,因此此列表可能并非详尽无遗。如果未提供语言,则地理编码器将尝试使用Accept-Language标头中指定的首选语言,或发送请求的域的本地语言。地理编码器将尽力提供可供用户和当地人阅读的街道地址。为了实现该目标,它将以本地语言返回街道地址,如果需要,将其音译为用户可读的脚本,并观察首选语言。所有其他地址将以首选语言返回。地址组件将以相同的语言返回,该语言是从第一个组件中选择的。如果名称不能以首选语言提供,则将使用最接近的匹配。
您可以找到支持的语言列表here。
因此,对于波兰语,您的API网址将类似于:
http://maps.googleapis.com/maps/api/geocode/json?address=CITY_NAME&sensor=true&language=pl