Mik*_*key 11 javascript google-maps infowindow google-maps-api-3 google-maps-markers
我一直在四处挖掘,我似乎无法弄清楚这一点.这让我疯狂!我一般都是javascript的新手,所以我不能完全理解可以解决我的问题的翻译.我注意到很多人都有这个问题,但他们似乎都使用比我更高级(或者只是令人困惑)的代码.无论如何,这里有!
我一直遇到的问题是我的所有标记共享相同的内容.
function initialize() {
var myOptions = {
center: new google.maps.LatLng(34.151271, -118.449537),
zoom: 9,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
panControl: false,
zoomControl: true,
zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL },
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
setMarkers(map, clubs);
}
var clubs = [
['Poop', 34.223868, -118.601575, 'Dookie'],
['Test Poop', 34.151271, -118.449537, 'Test Business']
];
function setMarkers(map, locations) {
var image = new google.maps.MarkerImage('images/image.png',
new google.maps.Size(25, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32)
);
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
for (var i = 0; i < locations.length; i++) {
var club = locations[i];
var myLatLng = new google.maps.LatLng(club[1], club[2]);
var infowindow = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image,
shape: shape,
title: club[0],
});
google.maps.event.addListener(marker, 'click', function(){
infowindow.setContent(club[3]);
infowindow.open(map, this);
});
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我很糟糕,但有人请帮助我!:P
dun*_*can 33
问题是因为您在循环中为标记点击设置事件侦听器.因此,所有标记最终只能获取最后一个标记的内容.试试这个.创建一个新的全局函数:
function bindInfoWindow(marker, map, infowindow, html) {
marker.addListener('click', function() {
infowindow.setContent(html);
infowindow.open(map, this);
});
}
Run Code Online (Sandbox Code Playgroud)
然后在你的循环中,替换为:
google.maps.event.addListener(marker, 'click', function(){
infowindow.setContent(club[3]);
infowindow.open(map, this);
});
Run Code Online (Sandbox Code Playgroud)
有了这个:
// add an event listener for this marker
bindInfoWindow(marker, map, infowindow, club[3]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5574 次 |
| 最近记录: |