Google API V3一次只打开一个信息窗口



我根本不懂javascript,但我设法让地图上的一切都正常工作,除了这一件事。我正在为一个论坛做一个功能,成员们可以把他们的城市和州发给我,我把他们添加到地图上。以下是我所拥有的:http://l4ptester.solidwebhost.com/L4p.html如果你点击几个地图标记,你会看到你可以一次打开任意多的infoWindows,我不希望这样。我只想一次打开infoWindow。所以,如果我在佛罗里达州点击一个标记,然后在加利福尼亚州点击,佛罗里达州的标记就会关闭。

以下是我的代码中地图标记的条目:

var InvadermooseLL = new google.maps.LatLng(27.321984,-82.527666);
var contentString = 
'<div id="content">'+
'<center> <strong>Invadermoose</strong> </center>'+
'<img src="http://www.luxury4play.com/customavatars/avatar16771_3.gif">'+
'<div id="bodyContent">'+
'<a href="http://www.luxury4play.com/members/invadermoose.html" '+
'target="_blank">Invadermoose&#39;s L4P Profile</a>'+
'<br/><font size="2">(Opens in new tab)</font>'+
'City: Sarasota'+
'State: Florida'+
'</div>'+
'</div>';
var InvadermooseIW = new google.maps.InfoWindow({
content: contentString
});
var InvadermooseMKR = new google.maps.Marker({
position: InvadermooseLL,
map: map,
title:"Invadermoose"
});
google.maps.event.addListener(InvadermooseMKR, 'click', function() {
InvadermooseIW.open(map,InvadermooseMKR);
IrelentlessIW.close(map,IrelentlessMKR);
Hollywood85IW.close(map,Hollywood85MKR);
HazeMythIW.close(map,HazeMythMKR);
jagkidIW.close(map,jagkidMKR);
DiegoVIW.close(map,DeigoVMKR);
RaceMindedIW.close(map,RaceMindedMKR);
});

我会稍微解释一下。Invadermose是获得地图标记的用户,所以我将其用作ID以保持其有序性。因此var InvadermoseLL基本上是Invadermose LatLang,InvadermouseMKR是Invadelmose Marker。它只是帮助我保持它的组织。

现在,在脚本的底部,我有了所有的"点击"功能。在我看来,它会关闭其他成员的标记,但它不起作用。我在Stack overflow上读到这样做,但它不起作用。

我基本上为每个有地图标记的用户重复这个相同的代码,我只是用我的识别前缀(LL、MKR、IW)和一些"点击"功能将Id更改为他们的用户名。

在示例中,您可以找到重用InfoWindow的解决方案。这比为每个用户创建一个新的要干净得多。如果只有一个InfoWindow,你可以简单地更新它的位置,InfoWindow在旧位置关闭,在新位置再次打开。

这样做的副作用是,不可能同时打开多个InfoWindow,因为实际上只有一个。

相关内容

  • 没有找到相关文章

最新更新