[英]Uncaught TypeError: Cannot read property 'name' of null
我正在使用 Google Maps 和 Places API 來獲取地點列表並將它們添加到地圖中。 當您單擊其中一個標記時,會出現一個信息窗口,允許用戶查看地點名稱、聯系方式等。對於大約 60% 的標記一切正常,但對於其他 40%,信息窗口不出現。 查看 javascript 錯誤,我看到了這個錯誤:
Uncaught TypeError: Cannot read property 'name' of null.
這是我創建信息窗口的代碼:
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
var one = 1;
var two = 2;
var request = { reference: place.reference };
service.getDetails(request, function(details, status) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(
details.name + "<br />"
+ details.formatted_address + "<br />"
+ "<a target='_blank' href='" + details.website +"'>Visit Website</a>" + "<br />"
+ details.formatted_phone_number + "<br />"
+ "<a href='#' onclick='getDirections(" + details.geometry.location.toUrlValue()
+ "," + location1 + "); return false;'>Directions from Marker One</a>" + "<br />"
+ "<a href='#' onclick='getDirections2(" + details.geometry.location.toUrlValue()
+ "," + location2 + "); return false;'>Directions from Marker Two</a>" + "<br />"
);
infowindow.open(map, this);
});
});
}
我真的不明白這個錯誤。 谷歌存儲的所有地方肯定都有名字嗎?!
作為記錄,我已經瀏覽了 Google Places & Maps API 文檔,但我真的找不到任何對我有幫助的東西。
任何幫助將不勝感激。
更新:
所以我已經按照建議在控制台中記錄了這些地方。 對於我正在做的示例測試,它在我的地圖上創建了 20 個標記。 在它創建的 20 個中,只有 8 個在單擊時顯示信息窗口,其他 12 個返回上面列出的錯誤。 正如我所期望的那樣,所有 20 個位置都被打印到控制台,所有這些都是對象,而且它們看起來都一樣。 下面我列出了控制台中可點擊和不可點擊的打印內容。
可點擊:
Object
geometry: Object
html_attributions: Array[0]
icon: "http://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png"
id: "97df16ee5e8d0d9e0c337f52b66dd85ae44de298"
name: "Red Lion"
rating: 3.3
reference: "CnRmAAAA1Oe3LpGcT2zpHUgRq4jfsx-QsnpgUlPKKhVhBL0AVjY1BNKJiscqTbxl-25alM_DJzTIjJTeIkpuVKL0CHkxgBc_nLKNddOkKv6EICQymo7etn-MVY4h06bTKUBwSjIfH30vbNSgCeiv3Cfzy27eORIQrUUJ4nStEjkCI2fJMTaVsRoUHI04xFPDfej3xHC17nJH2mBNBzg"
types: Array[3]
vicinity: "Little Missenden, Amersham"
__proto__: Object
不可點擊:
Object
geometry: Object
html_attributions: Array[0]
icon: "http://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png"
id: "01128746c46a52d9a215d3d6a01c11e22f1a49be"
name: "The Full Moon"
rating: 3.9
reference: "CnRrAAAAWDw84_G5mLrNQxd1b14uVsPhw6LmR6sXdvDrJqSDqnMUSzj88n1TImyictRtxtI6_mQz5YXyiBDWM5Un74MoCH06On5kf5JDw6RM3le2SDUcqyZO04NhqwyeBT267ctu91I74hTJmx_VGgqEpXe0HxIQhErbCKXmDJU2yaVmtltITxoUOi4OrxKU9fPGoBiYAn3NGmNpcn8"
types: Array[2]
vicinity: "Hare Lane, Little Kingshill, Great Missenden"
__proto__: Object
我還嘗試去除所有不必要的代碼。
可能值得注意的是,控制台中打印的一些屬性可以進一步擴展,不確定它是否相關,所以我沒有為示例做這件事。 如果有人認為相關,我可以在以后添加更新的內容。
感謝您到目前為止的所有回復。
JA
details
為null
,所以您的請求,即place.reference
有問題。 place
登錄到控制台並打開它以查看其中的內容 - 如果有的話。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.