Google maps api 3 谷歌放置api城市或Zipcode

Google maps api 3 谷歌放置api城市或Zipcode,google-maps-api-3,knockout.js,google-places-api,Google Maps Api 3,Knockout.js,Google Places Api,我正在将google places api与knockout.js一起使用,但我遇到的问题是,是否能够按城市、州或ZipCode进行过滤 在此代码中: var options = { types: ['geocode'], componentRestrictions: { country: "us" } }; 您如何指定我需要“地理编码”和“城市” 所以用户可以输入城市名称或Zipcode 当前代码不适用于Zipcode 还需要格式化结果以显示城市、州,

我正在将google places api与knockout.js一起使用,但我遇到的问题是,是否能够按城市、州或ZipCode进行过滤

在此代码中:

var options = {
    types: ['geocode'],
    componentRestrictions: {
        country: "us"
    }
};
您如何指定我需要“地理编码”和“城市”

所以用户可以输入城市名称或Zipcode

当前代码不适用于Zipcode

还需要格式化结果以显示城市、州,而不是城市、州和国家

ko.bindingHandlers.addressAutocomplete = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var value = valueAccessor(),
            allBindings = allBindingsAccessor();

        var options = {
            types: ['geocode'],
            componentRestrictions: {
                country: "us"
            }
        };
        ko.utils.extend(options, allBindings.autocompleteOptions)

        var autocomplete = new google.maps.places.Autocomplete(element, options);

        google.maps.event.addListener(autocomplete, 'place_changed', function () {
            result = autocomplete.getPlace();
            value(result.formatted_address);
        });
    },
    update: function (element, valueAccessor, allBindingsAccessor) {
        ko.bindingHandlers.value.update(element, valueAccessor);
    }
};
  • 您不能使用多种类型(除了
    geocode
    机构
  • 类型
    -选项将过滤器应用于结果,而不是输入。当您将类型设置为
    geocode
    ,并且当用户输入邮政编码时没有得到结果,则该特定输入没有结果(API无法识别输入是邮政编码,它会接受输入并搜索匹配的任何内容,无论是邮政编码、街道号码还是其他内容)
  • 若要应用自定义格式,必须解析address_组件,请参阅: