我在连接Google Maps API时使用参数 language = en 。
我使用此代码检测城市:
function locationHelper(array, key) {
var location = false;
$.each(array, function (i, object) {
if (object.types[0] == key) {
location = (object.long_name != "") ? object.long_name : object.short_name;
}
});
return location;
}
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
var city = locationHelper(place.address_components, 'locality');
console.log(city);
});
当我从autocomplete.getPlace()显示数据时,为什么Google会以罗马尼亚语版本(Bucureşti)向我发送布加勒斯特?
来自文档:
默认占位符文本会自动本地化。如果指定自己的占位符值,则必须在应用程序中处理该值的本地化。有关Google Maps JavaScript API如何选择使用该语言的信息,请阅读有关本地化的文档。
我一开始就做到了。我们可以看到,Google建议我们为变体选择一种语言。仅适用于变体,结果中没有任何字词。我还没有找到任何解决方案。
答案 0 :(得分:1)
详细信息的地址格式遵循Google在以下文档中描述的政策:
https://googlegeodevelopers.blogspot.com.es/2014/11/localization-of-street-addresses-in.html
Google Maps Geocoding API返回的街道级地址现在支持使用本地语言,同时尽可能地让只读取所请求语言的用户和本地人都能理解地址。如果本地语言和用户语言都使用相同的字母,则地理编码API现在将返回街道和地区的本地名称。
这同样适用于Places API详细信息,但是,看起来自动填充不符合此指南,但我相信Google目前正在研究此问题。