google map Autocomplete 地址自动填充 address 省,市,邮编,

技术分享 · Fecmall · 于 1年前 发布 · 486 次阅读

google map Autocomplete 地址自动填充 address 省,市,邮编



<input id="Input_SearchCityState" type="text" style="width:800px;height:4rem" />
<script   src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBxbR_ZOT7SHiby4QYL1aIsS-QHUR86Nl8&callback=InitAutocompleteCityState&libraries=places&language=en" defer ></script>

<script>


 function InitAutocompleteCityState() {
	var OptionsCity = {
		types: ["address"], 
		componentRestrictions: { country: "us" } 
	};
	CityAutocomplete = new google.maps.places.Autocomplete((document.getElementById('Input_SearchCityState')), OptionsCity);
    CityAutocomplete.addListener('place_changed', function () { FillInGoogleAddress(CityAutocomplete); });

 }
 
 
function FillInGoogleAddress (acomplete) {

 var place = acomplete.getPlace();
 console.log(place);
 
 // 将结果通过英文逗号截取,取第一个位置,譬如:Newark International Airport St, Newark, NJ 07114, USA ,截取:Newark International Airport St放到address里面
 formatted_address = place.formatted_address;
 console.log(formatted_address);
  
  // xx路
 // road = place.address_components.find(function (e) { return e.types[0] == "route" });
 //console.log(road);
 
 // 市区
 // area = place.address_components.find(function (e) { return e.types[0] == "sublocality_level_1" });
 //console.log(area);
 
 // 城市 取long_name 填写到输入框
 var city = place.address_components.find(function (e) { return e.types[0] == "locality" });
 
  console.log(city);
  
  // 省  如果省是下拉条,则取 short_name进行勾选,如果省是输入框,那么取long_name 填写
  var state = place.address_components.find(function (e) { return e.types[0] == "administrative_area_level_1" });
			
  console.log(state);
  
  // 邮编
 var zip = place.address_components.find(function (e) { return e.types[0] == "postal_code" });
  console.log(zip.long_name);    // vrzipcode.long_name
 }
   

</script>

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics