我正在努力構建一個以電子郵件形式發送的簡單表單,並將使用Google的API作爲地址字段。我已閱讀了有關使用用戶開始鍵入地址的自動完成部分,並推薦了一個。因此,如果我開始輸入12 West,它會推薦並允許我選擇12 Westmount Drive,Cayley,n2n 5h8,Alberta,Canada。從谷歌地圖api提取信息
我想知道在後端,如果它有可能將此信息拆分成街道,城市,郵編,省和國家。這樣,我可以在電子郵件中包含完整的地址,然後在單獨的段落中使用街道和城市信息。
我正在努力構建一個以電子郵件形式發送的簡單表單,並將使用Google的API作爲地址字段。我已閱讀了有關使用用戶開始鍵入地址的自動完成部分,並推薦了一個。因此,如果我開始輸入12 West,它會推薦並允許我選擇12 Westmount Drive,Cayley,n2n 5h8,Alberta,Canada。從谷歌地圖api提取信息
我想知道在後端,如果它有可能將此信息拆分成街道,城市,郵編,省和國家。這樣,我可以在電子郵件中包含完整的地址,然後在單獨的段落中使用街道和城市信息。
從Google返回的地址中提取特定字段是絕對有可能的。
假設您使用的是Places Autocomplete,您將有權訪問PlaceResult對象。 PlaceResult對象將具有名爲address_components
的屬性,該屬性是GeocoderAddressComponent對象的數組。
每個GeocoderAddressComponent都有一個types
數組,其中包含該組件的名稱或多個名稱(如果存在多種描述該名稱的方式)。可以在here找到示例address_components
對象。
您可以遍歷address_components
陣列中的所有元素,查找名稱route
和sublocality
,這將分別爲您提供街道和城市的單個值。
/*我假設你想填寫你的表格後發送電子郵件是正確的?
我想保留此表單信息將信息收集到數據庫中以供將來使用。然後你可以查詢信息到發送表單。
下面是代碼可以幫助您*/
爲?(我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);
https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete-addressform – geocodezip