我有数组:

var stops = [];
    stops[1] = {name:'One', lat:51.9219465100951 ,long:-8.61797176722262};
    stops[2] = {name:'Two', lat:51.9270744 ,long:-8.6105043};
    stops[3] = {name:'Three)', lat:51.9254898 ,long:-8.6100269};


我正在尝试遍历并在地图上显示这些标记...

function initMap() {
 map = new google.maps.Map(document.getElementById('map'), {
 center: {lat: 51.933596, lng:  -8.578540},
 zoom: 14,
 mapTypeId: 'hybrid'
});

for(var i=0; i<=stops.length; i++){
  var mypos = {stops[i].lat, stops[i].long};
  var marker = new google.maps.Marker({
   position: mypos,
   map: map,
   title: stops[i].name
  });
 }
}


地图上没有标记。

我在下一行收到[的意外令牌错误。
      var mypos = {stops [i] .lat,stops [i] .lng};

我已对此进行了更改,但仍然无法正常工作。

最佳答案

mypos必须是:

var mypos = {lat: stops[i].lat, lng: stops[i].long};


如果没有“ lat:”和“ lng:”,则试图将对象声明为数组。 'position'期望使用LatLngLiteral(请参见上文)或LatLng对象,其声明如下:

var mypos = new google.maps.LatLng(stops[i].lat, stops[i].long};

关于javascript - 从JS Array向Google Maps添加标记,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39518991/

10-13 01:35