[英]Google Maps and Multiple Markers
这是我的代码。 问题出在地图上,但没有标记放置在地图上。 latlongARR是一个看起来像这样的数组
[{“ name”:“ McChord Field DGC”,“ lat”:“ 47.128257”,“ long”:“-122.488847”},{“ name”:“ Ambient DGC”,“ lat”:“ 47.184732”,“ long “:”-122.509232“},{” name“:” Riverside Disc Golf Park“,” lat“:” 47.185683“,” long“:”-122.212600“},{” name“:” East Tacoma DGC“,” lat“:” 47.227344“,” long“:”-122.398491“},{” name“:” White River“,” lat“:” 47.278501“,” long“:”-122.197390“}”
看来一切都应该工作?? 有明显的错误吗?
var mapOptions = {
zoom:10,
center: currentLocation,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('dgmap'), mapOptions);
var infowindow = null;
var infowindow = new google.maps.InfoWindow({content: 'loading...'});
var marker, i;
for(i=0; i < latlongARR.length; i++){
var markers;
marker = new google.maps.Marker({
position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),
map:map
});
console.log(latlongARR[i][0]);
google.maps.event.addListener(marker, 'click', (function(marker, i){
return function(){
infowindow.setContent(latlongARR[i][0]);
infowindow.open(map, marker);
}
})(marker,i));
};
}
position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),
latlongARR[i]
是一个对象,您需要使用属性名称而不是数字索引来获取值,上面的代码应为:
position: new google.maps.LatLng(latlongARR[i].lat, latlongARR[i].long),
要么
position: new google.maps.LatLng(latlongARR[i]['lat'], latlongARR[i]['long']),
以下同样的问题:
infowindow.setContent(latlongARR[i][0]);
这应该是infowindow.setContent(latlongARR[i].name);
您应该使用调试器。 第一件事是这样的:
marker = new google.maps.Marker({
position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),
map:map
});
latlongARR[i][1]
和latlongARR[i][2]
未定义,它们应该是latlongARR[i].lat
和latlongARR[i].long
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.