在我的网站上,我使用Google Maps API v3在地图上放置房屋标记.
除非您明确单击关闭图标,否则InfoWindows将保持打开状态.这意味着,如果将鼠标悬停在地图标记上,则可以一次打开2个以上的InfoWindows.
问题:如何进行此操作以便仅打开当前活动的InfoWindow并关闭所有其他InfoWindows?这意味着,一次只能打开1个InfoWindow?
我有一个越来越复杂的谷歌地图,它绘制了数千个点并将它们聚类.当用户点击其中一个地图标记时,我会打开一个infowindow,这一切都很有效.然而,我想做的一个改进是在打开一个新窗口时强制所有其他信息窗口关闭,这样一次只能打开一个信息窗口.
我已经尝试将一些代码(if (infowindow) infowindow.close();)添加到侦听器函数中来执行此操作,但我认为问题更广泛,因为我正在为每个标记创建一个infowindow,并且在打开的事件上无法访问其他信息窗口一个新的.因此,从阅读本文来看,只有一个可以重复使用而不是很多的信息似乎是一个更好的主意.
麻烦的是,代码处于我真正理解的边缘,到目前为止我做这个实验的实验刚刚破坏了一切.
我目前的代码如下:
var _iconCenter = new google.maps.MarkerImage('/css/img/map-marker.png',
new google.maps.Size(38, 48),
new google.maps.Point(0,0),
new google.maps.Point(19, 44));
var shadow = new google.maps.MarkerImage('/css/img/map-marker-shadow.png',
new google.maps.Size(57, 49),
new google.maps.Point(0,0),
new google.maps.Point(7, 44));
var _icon = '/css/img/map-marker-purple.png';
var infowindow;
var markersArray = [];
var map;
var currentPosition = 0;
var currentmarker;
var firstload = true;
var maploaded = false;
var interval = 5000;
var geocoder;
var stylez = [];
function initialize(items,loop,zoom) {
geocoder = new google.maps.Geocoder();
if (items.length > …Run Code Online (Sandbox Code Playgroud) 我知道我的问题很多。但是我几乎看到了所有它们,并尝试应用其中一些。但是什么也没发生。下面是我的代码
var locations =
[{ "id": 1, "ReferenceNumber": "52525252525", "Address" : "School" , "Latitude": "21.585486", "Longitude": "50.258745" },
{ "id": 2, "ReferenceNumber": "6262626262", "Address" : "University", "Latitude": "21.54484411", "Longitude": "50.14846648" },
{ "id": 3, "ReferenceNumber": "424242424", "Address": "PUMPING STATION ", "Latitude": "21.9856341", "Longitude": "61.2587466" }];
Run Code Online (Sandbox Code Playgroud)
我添加的上述位置只有少数带有虚假条目的位置,否则我有150多个位置
$.each(locations, function(i, item) {
var marker = new google.maps.Marker({
'position': new google.maps.LatLng(item.Latitude, item.Longitude),
'map': map,
'title': item.Latitude + "," + item.Longitude
});
marker.setIcon('http://maps.google.com/mapfiles/ms/icons/red-dot.png')
var infowindow = new google.maps.InfoWindow({
content: "<div class='infoDiv'><h3>Reference#: </h3> <h6>" + …Run Code Online (Sandbox Code Playgroud)