首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: google.maps.Markers不是构造函数

TypeError: google.maps.Markers不是构造函数
EN

Stack Overflow用户
提问于 2017-08-26 10:38:46
回答 2查看 7.9K关注 0票数 0

我将使用marker cluster数据使用info window创建json

但是google.maps.Markers is not a constructor error.Though标记集群没有显示

这是我的密码:

代码语言:javascript
复制
var map = new google.maps.Map(document.getElementById('map'), {
            zoom: 5,
            center: {"lat": 39.317779, "lng": -101.459656},
            mapTypeId: 'roadmap',
          });
          map.setTilt(45);

          for(var i=0;i<locations.length;i++){
            var data=locations[i];
            var mylatlng=new google.maps.LatLng(locations.lat,locations.lng);
            var markers = new google.maps.Markers({
              position:mylatlng,
              map:map

            });
            (function(marker,data){
              google.maps.event.addListener(marker,'click',function(e){
                infowindow.setContent(data.code +
                          '<br/>' + data.PIN +
                          '<br/><b>STOCKNO:</b> ' + data.No +
                          '<br/><b>STATUS:</b> ' + data.Status);
                infowindow.open(map, marker);
              })
            })(marker,data);
            }

          var markerCluster = new MarkerClusterer(map, markers,
                  {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});

}

小提琴:https://jsfiddle.net/ram6gpz1/1/

我为什么要犯这个错误?我做错了什么?有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-26 11:10:13

这是一个解决方案,https://jsfiddle.net/ram6gpz1/7/

代码语言:javascript
复制
$(document).ready(function(){
  initialization() 
});

function initialization() {
        
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 5,
    center: {"lat": 39.317779, "lng": -101.459656},
    mapTypeId: 'roadmap',
  });
  map.setTilt(45);

  for(var i=0;i<locations.length;i++){
    var data=locations[i];
    var marker = new google.maps.Marker({
      position: {lat: data.lat, lng: data.lng},
      map : map
    });

    attachSecretMessage(marker, i);

  }

  function attachSecretMessage(marker, i) {
    var data = locations[i];

      secretMessage = `${data.code} 
        <br/>${data.PIN} 
        <br/><b>STOCKNO:</b>${data.No}
        <br/><b>STATUS:</b>${data.Status}`;

      var infowindow = new google.maps.InfoWindow({
        content: secretMessage
      });

      marker.addListener('click', function() {
        infowindow.open(marker.get('map'), marker);
      });
  }

}

         
var locations = [{
 "No": 67000052704,
 "PIN": "JF2FH327573",
 "Status": "Not Available",
 "lat": 32.8781453358752,
 "lng": -97.3715011598119,
 "code": "Gate6"
},
{
 "No": 6700064837,
 "PIN": "WBA53050",
 "Status": "Available",
 "lat": 34.0026085052726,
 "lng": -83.7873632217882,
 "code": "Gate2"
},
{
 "No": 2000544837,
 "PIN": "WBA53EVW530",
 "Status": "Available",
 "lat": 34.0026085052726,
 "lng": -83.7873632217882,
 "code": "Gate1"
}];
代码语言:javascript
复制
<div id="map"></div>

更新解决方案这里是解决方案https://jsfiddle.net/ram6gpz1/9/

代码语言:javascript
复制
 $(document).ready(function(){
        initialization() 
});

function initialization() {
        
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 5,
    center: {"lat": 39.317779, "lng": -101.459656},
    mapTypeId: 'roadmap',
  });
  map.setTilt(45);
  var infoWin = new google.maps.InfoWindow();
  var markers = locations.map(function(location, i) {

    var marker = new google.maps.Marker({
      position: {lat: location.lat, lng: location.lng}
    });
    google.maps.event.addListener(marker, 'click', function(evt) {
      infoWin.setContent(`${location.code} 
      <br/>${location.PIN} 
      <br/><b>STOCKNO:</b>${location.No}
      <br/><b>STATUS:</b>${location.Status}`);
      infoWin.open(map, marker);
    })

    return marker;
  });


  var markerCluster = new MarkerClusterer(map, markers,
          {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});

}

         
var locations = [{
  "No": 67000052704,
  "PIN": "JF2FH327573",
  "Status": "Not Available",
  "lat": 32.8781453358752,
  "lng": -97.3715011598119,
  "code": "Gate6"
},
{
  "No": 6700064837,
  "PIN": "WBA53050",
  "Status": "Available",
  "lat": -19.9286,
  "lng": -43.93888,
  "code": "Gate2"
},
{
  "No": 2000544837,
  "PIN": "WBA53EVW530",
  "Status": "Available",
  "lat": -19.85758,
  "lng": -43.9668,
  "code": "Gate1"
}];
代码语言:javascript
复制
#map{
  height:500px;
  width:500px;
}
代码语言:javascript
复制
<div id="map"></div>

另外,我已经更新了一些位置,看看这个。为了找到集群,您需要放大。

希望这能解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-08-26 10:54:43

你做了个小错误。当new google.maps.Markers应该是new google.maps.Marker时,您就有了它(注意末尾缺少"s“)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45894464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档