[google Autocomplete API 调用 查询 address,city,state]

主要功能:调用google  Autocomplete api  完成如下图功能。

 第一步 页面调用 google api

【https://maps.googleapis.com/maps/api/js?key=" + GoogleAPIKey + "&libraries=places&callback=InitAutocompleteCityState&language=en】

GoogleAPIKey:为自己访问【https://console.cloud.google.com/apis/dashboard】申请的google apikey,每天有免费额度。

google doc:

 第二步   需要用到的几个function

【callback=InitAutocompleteCityState】

 InitAutocompleteCityState: function () {
        var OptionsCity = {
            types: ["(cities)"], componentRestrictions: { country: "us" },
            fields: ["formatted_address", "address_components"], //"address_components", "geometry", "icon",
        };

   

        CityAutocomplete = new google.maps.places.Autocomplete((document.getElementById('Input_SearchCityState')), OptionsCity);
        CityAutocomplete.addListener('place_changed', function () { Detail.FillInGoogleAddress('B', CityAutocomplete); });

   
    }

FillInGoogleAddress

FillInGoogleAddress: function (tp, acomplete) {

        $("#Input_" + tp + "_route").val('');
        $("#Input_" + tp + "_zipcode").val('');
        $("#Input_" + tp + "_city").val('');
        $("#Input_" + tp + "_county").val('');
        $("#Input_" + tp + "_state").val('');
        $("#Input_" + tp + "_country").val('');

        var place = acomplete.getPlace();


        if (place != undefined && place.address_components != undefined) {
            //address
            var vraddress = place.address_components.find(function (e) { return e.types[0] == "route" });
            if (vraddress != undefined) {
                $("#Input_" + tp + "_route").val(vraddress.short_name);
            }
            //zipcode
            var vrzipcode = place.address_components.find(function (e) { return e.types[0] == "postal_code" });
            if (vrzipcode != undefined) {
                $("#Input_" + tp + "_zipcode").val(vrzipcode.short_name);
            }
            //city
            var vrcity = place.address_components.find(function (e) { return e.types[0] == "locality" });
            if (vrcity != undefined) {
                $("#Input_" + tp + "_city").val(vrcity.short_name);
            }
            //county
            var vrcounty = place.address_components.find(function (e) { return e.types[0] == "administrative_area_level_2" });
            if (vrcounty != undefined) {
                $("#Input_" + tp + "_county").val(vrcounty.short_name);
            }
            //state
            var vrstate = place.address_components.find(function (e) { return e.types[0] == "administrative_area_level_1" });
            if (vrstate != undefined) {
                $("#Input_" + tp + "_state").val(vrstate.short_name);
            }
            //country
            var vrcountry = place.address_components.find(function (e) { return e.types[0] == "country" });
            if (vrcountry != undefined) {
                $("#Input_" + tp + "_country").val(vrcountry.short_name);
            }

        }

html: 

<input id="Input_SearchCityState" type="text"  />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值