[英]google.maps.places.Autocomplete call on blur, results in “Cannot read property 'geometry' of undefined”
[英]Google Maps Places Autocomplete missing geometry
Google Maps Places Autocomplete 不再按預期工作。
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
當在 map 中插入搜索字符串時(例如“ZKM”),它會在下拉列表中給出一些建議。 在這種情況下,它將是“ZKM | Zentrum für Kunst und Medientechnologie Karlsruhe, Lorenzstraße, Karlsruhe, Deutschland”。 單擊此項目時,地圖上不會放置任何標記!
但是當搜索“Karlsruhe”並點擊第一個搜索結果“Karlsruhe, Deutschland”時,標記被正確放置。
在代碼中調用了一個名為 getPlace() 的 function。
var place = autocomplete.getPlace();
這個地方應該包含一個 object “幾何”,但它沒有。
這個問題有什么解決方法嗎?
看看函數的開頭:
if (!place.geometry) {
return;
}
PlaceResult
可以,但不能具有geometry
屬性。
澄清自動完成的工作原理:
當您鍵入內容時,API將請求預測(填充下拉列表)。 只有當您從下拉列表中選擇一個位置時,它才會請求特定位置的數據(包括幾何圖形)。
顯然,所使用的數據存在不一致性(API不應該建議沒有信息可訪問的地方),但就是這樣,可能會發生沒有地點的預測。
解決方法:AFAIK沒有
看起來它已被谷歌修復:)
請確保在自動完成中設置'幾何'字段,如下所示:
autocomplete.setFields(['address_component', 'geometry']);
是的,這個地方包含一個 object “幾何”。
要找到這個,你應該使用這個:
autocomplete.getPlace().geometry.location.lat() //for the latitude
autocomplete.getPlace().geometry.location.lng() //for the longitude
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.