虽然我在加拿大使用法语作为加拿大的 geocoder.geocode 响应,而我需要在英语中使用响应。
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': "G1B0A3, Canada" }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results.length >= 1) {
for (var ii = 0; ii < results[0].address_components.length; ii++) {
var types = results[0].address_components[ii].types.join(",");
if (types.includes("locality")) {
$("#City").val(results[0].address_components[ii].long_name);
city = results[0].address_components[ii].long_name;
}
if (types == "administrative_area_level_1,political") {
$(".StateClass option").each(function () {
if ($(this).text().toUpperCase() == results[0].address_components[ii].long_name.toUpperCase()) {
if (typeof (state) != "undefined") {
state = $(this).val();
$(".StateClass").val($(this).val());
}
else {
$(this).attr('selected', true);
state = $(this).val();
$(".StateClass").val(state);
}
}
});
}
}
}
}
}
答案 0 :(得分:0)
Geocoding API docs中清楚地阐明了这种行为:
language
-返回结果的语言。
- 请参见list of supported languages。 Google经常更新支持的语言,因此此列表可能并不详尽。
- 如果未提供
language
,则地理编码器将尝试使用Accept-Language
标头中指定的首选语言,或者 发送请求的域的本地语言。
[...]
这样,将language
选项添加到您对geocoder.geocode
的初始调用中,将英语(en
)指定为“返回结果所用的语言”:
geocoder.geocode({ 'address': "G1B0A3, Canada", 'language': 'en' }, function (results, status) {
答案 1 :(得分:0)
经过大量搜索后,我没有找到解决方案来获得Google的英文答复,例如“ G1B0A3”这样的一些邮政编码,我使用short_name,而不是long_name,是英文,某些情况下是根据本地化语言进行转换
简称:结果[0] .address_components [ii] .short_name