谷歌地图/地点API JavaScript-无法读取属性'setContent'的未定义

Google Maps/Places API JavaScript - Cannot read property 'setContent' of undefined

本文关键字:setContent 未定义 属性 读取 地点 API JavaScript- 谷歌地图      更新时间:2023-11-25

我正试图在单击使用位置查询放置的每个标记时显示一个infoWindow。我正在使用地理定位来查找位置,然后显示附近所有的酒吧。我希望能够点击每个标记,它显示酒吧的名称(place.name)。

单击标记时,我在控制台中得到的错误是"无法读取未定义的属性'setContent'"。

//谷歌位置代码不包括我的地理位置代码,这很好//

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/

这是我在控制台上得到的错误:

https://i.stack.imgur.com/2Pkeb.png

谢谢!

未定义信息窗口变量。在呼叫infowindow.setContent();之前,请先在某处尝试infoWindow = new google.maps.InfoWindow

有关如何使用infoWindows的详细信息,请查看此处:https://developers.google.com/maps/documentation/javascript/3.exp/reference#InfoWindow