Google Maps Geocoder Возвращает ответ для Канады на французском языке, в то время как мне нужен ответ на английском языке - PullRequest
0 голосов
/ 30 октября 2019

В моем проекте есть раскрывающиеся списки штатов / провинция Канады, я выбираю штаты на основе почтового индекса, чтобы узнать город или штат по google.geocoder

Пока я использую дляcanada 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 голосов
/ 31 октября 2019

После долгих поисков я не нашел решения, чтобы получить ответ от Google на английском языке для нескольких почтовых индексов, таких как 'G1B0A3', я использую короткое имя, вместо английского это длинное имя, в некоторых случаях конвертируется согласно локализованному языку

для короткого имени: результаты [0] .адрес_компонентов [ii] .хорошее_имя

0 голосов
/ 30 октября 2019

Это поведение довольно четко изложено в документах Geocoding API :

language - Язык, на котором возвращаются результаты.

  • См. Список поддерживаемых языков . Google часто обновляет поддерживаемые языки, поэтому этот список может быть неполным.
  • Если language не указан, геокодер пытается использовать предпочтительный язык, указанный в заголовке Accept-Language, или родной язык. домена, с которого отправляется запрос. [...]

Таким образом, добавьте опцию language к вашему первоначальному вызову к geocoder.geocode, указав английский (en) в качестве языка ", на котором нужно вернутьсярезультаты ":

geocoder.geocode({ 'address': "G1B0A3, Canada", 'language': 'en' }, function (results, status) {
...