我正在使用谷歌位置自动补全文本,直到昨天一切都很顺利。从今天起,谷歌搜索位置返回的结果很少是英文的,即使它设置为希伯来语。
StringBuilder sb = new StringBuilder(PLACES_API_BASE + TYPE_AUTOCOMPLETE + OUT_JSON);
sb.append("?key=" + API_KEY);
sb.append("&components=country:il");
sb.append("&input=" + URLEncoder.encode(input, "utf8"));
sb.append("&types=(cities)&language=il");
URL url = new URL(sb.toString());
conn = (HttpURLConnection) url.openConnection();
InputStreamReader in = new InputStreamReader(conn.getInputStream());
// Load the results into a StringBuilder
int read;
char[] buff = new char[1024];
while ((read = in.read(buff)) != -1) {
jsonResults.append(buff, 0, read);
}
在调试时,我可以获得用于获取结果的url,当我检查预测(通过浏览器)时,它看起来很好,并且所有匹配都是希伯来语。
一旦jsonResults获得匹配,在某些情况下,第一个结果是英语,其余的是希伯来语。
e。g我用希伯来语写了两个字母"以色列",url匹配返回第一名"以色列"(耶路撒冷),但是当它到达jsonResults时,第一个结果变成"耶路撒冷,以色列",这与原始的第一个结果不同。
问题是google将希伯来语的定义从il更改为iw。
所以应该是:
sb.append("&types=(cities)&language=iw");
支持的语言列表:Google List