我试图在点击使用地点查询放置的每个标记时显示一个信息窗口。我正在使用地理定位来查找位置,然后显示附近的所有酒吧。我希望能够单击每个标记,它会显示酒吧的名称 (place.name)。
单击标记时我在控制台中收到的错误是“无法读取未定义的属性‘setContent’”。
//Google Places 代码不包括我的工作正常的地理位置代码//
function initMap() {
myLatLng = new google.maps.LatLng(lat,long);
var Options = {
scrollwheel: false,
zoom:15,
center: myLatLng,
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'),Options);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
label: "Y",
});
var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
location: myLatLng, //Uses geolocation to find the following
radius: 500,
types: ['bar']
}, callback);
};
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
}
我发现这段代码和我有完全相同的问题,信息窗口没有加载,控制台也有同样的错误。
https://jsfiddle.net/jimedelstein/bfdhjsyy/
这是我在控制台中得到的错误:
http://i.stack.imgur.com/2Pkeb.png
谢谢!
最佳答案
未定义 infowindow 变量。在调用 infowindow.setContent();
之前,在某处尝试 infoWindow = new google.maps.InfoWindow
。
在这里查看有关如何使用 infoWindows 的详细信息:https://developers.google.com/maps/documentation/javascript/3.exp/reference#InfoWindow
关于javascript - Google Maps/Places API JavaScript - 无法读取未定义的属性 'setContent',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36360313/