2017-09-19 223 views
-1

我正在努力構建一個以電子郵件形式發送的簡單表單,並將使用Google的API作爲地址字段。我已閱讀了有關使用用戶開始鍵入地址的自動完成部分,並推薦了一個。因此,如果我開始輸入12 West,它會推薦並允許我選擇12 Westmount Drive,Cayley,n2n 5h8,Alberta,Canada。從谷歌地圖api提取信息

我想知道在後端,如果它有可能將此信息拆分成街道,城市,郵編,省和國家。這樣,我可以在電子郵件中包含完整的地址,然後在單獨的段落中使用街道和城市信息。

+0

https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete-addressform – geocodezip

回答

2

從Google返回的地址中提取特定字段是絕對有可能的。

假設您使用的是Places Autocomplete,您將有權訪問PlaceResult對象。 PlaceResult對象將具有名爲address_components的屬性,該屬性是GeocoderAddressComponent對象的數組。

每個GeocoderAddressComponent都有一個types數組,其中包含該組件的名稱或多個名稱(如果存在多種描述該名稱的方式)。可以在here找到示例address_components對象。

您可以遍歷address_components陣列中的所有元素,查找名稱routesublocality,這將分別爲您提供街道和城市的單個值。

0

/*我假設你想填寫你的表格後發送電子郵件是正確的?

我想保留此表單信息將信息收集到數據庫中以供將來使用。然後你可以查詢信息到發送表單。

下面是代碼可以幫助您*/

爲?(我VAR = 0;我< place.address_components.length;我++){

var addressType = place.address_components[i].types[0]; 

if (componentForm[addressType]) { 
    var val = place.address_components[i][componentForm[addressType]]; 
    document.getElementById(addressType).value = val; 

    your_obj[addresType] = val; 

} 

}

//之後,你可以在你不喜歡的地方使用它: var postal_code = your_obj ['postal_code'];

//檢查第一個console.log()知道your_obj中的所有項目 console.log(your_obj);