谷歌地图Geocoder以法语返回加拿大的响应,而我需要英语响应

时间:2019-10-30 17:25:03

标签: javascript google-maps google-geocoder

“我的项目”中包含加拿大的州/省下拉列表,我根据邮政编码选择那些州,并通过google.geocoder查找城市或州

虽然我在加拿大使用法语作为加拿大的 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);
                                    }
                                }
                            });
               }
           }
        }
    }
}

2 个答案:

答案 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