javascript - 如何在谷歌地图V3中同时打开单个信息窗口?

标签 javascript google-maps google-maps-api-3 infowindow

a我知道这是一个重复的问题,

我在基于 Django 的网络应用程序上使用谷歌地图 v3。我使用标记、信息窗口和折线。一切工作正常,除了当我单击标记以通过信息窗口显示内容时,之前打开的信息窗口没有关闭。

我发布了我的 map 代码(仅脚本部分或哪些是有用的):

var marker = add_marker(flightPlanCoordinates[i][0], flightPlanCoordinates[i][1],"Event Detail",myHtml);

这里myHtml是一个包含信息窗口内容的变量。我这里没有定义变量。所以忽略它。

    marker.setMap(map);
    }

    var flightPath = new google.maps.Polyline({
                 path: flightPlanCoordinatesSet,
                 strokeColor: "#FF0000",
                 strokeOpacity: 1.0,
                 strokeWeight: 2
                  });
    flightPath.setMap(map);
}

function add_marker(lat,lng,title,box_html) {
var infowindow = new google.maps.InfoWindow({
    content: box_html
});

var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,this);
});   

return marker;
}

最佳答案

仅使用一个实例,而不是使用多个 infoWindows。

点击标记时,先关闭infoWindow,然后设置新内容并打开infoWindow。

function add_marker(lat,lng,title,box_html) 
{
  //create the global instance of infoWindow 
  if(!window.infowindow)
  {
    window.infowindow=new google.maps.InfoWindow();
  } 

  var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.close();
    infowindow.setContent(box_html);
    infowindow.open(map,this)
  });   

  return marker;
}

关于javascript - 如何在谷歌地图V3中同时打开单个信息窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428017/

相关文章:

javascript - 错误 : Object doesn't support property or method 'trimLeft'

java - 谷歌地图 - Android 应用程序未加载 - 空对象引用

javascript - 通过街道地址获取谷歌地图的坐标(纬度和经度) - Angular

javascript - 如何在谷歌地图上拖动时绘制折线

android - 行驶距离

javascript - Facebook 登录不断重复询问权限 React Native?

javascript - 纯js密码检查器。如何检查密码检查器中的规则

javascript - 首次单击 Mapbox map 后,GeoJson LineString 仅加载一次

r - 检查 R 中是否存在街道地址

javascript - Google Maps API 未显示引导元素和固定导航栏