javascript - Google Maps/Places API JavaScript - 无法读取未定义的属性 'setContent'

标签 javascript jquery google-maps google-places-api

我试图在点击使用地点查询放置的每个标记时显示一个信息窗口。我正在使用地理定位来查找位置,然后显示附近的所有酒吧。我希望能够单击每个标记,它会显示酒吧的名称 (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/

相关文章:

javascript - 对数字进行因式分解

jquery - 完成/完成后如何在 $.each json 数组上使用 .promise().done() ?

javascript - 谷歌地图地理编码和循环标记

javascript - JS 和 CSS 未在 html 中加载

javascript - 如何从铁型 polymer 中获取响应头

jquery - $ 未在 Laravel 5.6 项目中使用 make :auth scaffolding and default app. js 定义

google-maps - 我可以在 Google map 中显示一个国家(询问)吗?

Jquery 和 Google map : Cannot display more than 11 markers

javascript - Air Datepicker 内联 javascript,用于启用距 newDate 15 天的日期

jQuery 使用 .next() 函数查找紧邻字符 "@"的字符