【问题标题】:close infowindow automatically google maps [duplicate]自动关闭信息窗口谷歌地图[重复]
【发布时间】:2018-05-12 11:58:07
【问题描述】:

打开另一个信息窗口时,以前的信息窗口保持打开状态。 如果我打开另一个信息窗口,如何自动关闭上一个信息窗口?我是新人,你能帮帮我吗

  var map;
  var markers = [];  

  function initMap() {
    var cucuta = {lat: 7.9145395, lng: -72.505966};

    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 14,
      center: cucuta,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    @foreach($users as $user)
      var ubicaciones = {lat: {{ $user->latitud }}, lng: {{ $user->longitud }} };
      var titulo = '{{ $user->name }}';
      addMarker(ubicaciones, titulo);
    @endforeach
  }

  function addMarker(location, titulo) {

      var marker = new google.maps.Marker({
      position: new google.maps.LatLng(location),
      map: map,
      title: titulo
    });
    markers.push(marker);

    var infowindow = new google.maps.InfoWindow();

    google.maps.event.addListener(marker, 'click', (function(marker) {

      return function() {
        infowindow.setContent(titulo);
        infowindow.open(map, marker);
      }
    })(marker));
  }

  function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
    }
  }

  function showMarkers() {
    setMapOnAll(map);
  }

【问题讨论】:

  • 我不认识全局信息窗口,它只在函数 addMarker 内部时才生成信息窗口
  • 识别是什么意思?如果您通过在标记下声明它来更改信息窗口的范围,它应该可以解决问题,不是吗?
  • 您好,感谢您再次回复,当我声明“var infowindow = new google.maps.InfoWindow ();”时,我会更好地解释自己在全球范围内,我不使用信息窗口
  • 当我声明“var infowindow = new google.maps.InfoWindow ();”在 addMarker 函数中,infowindow 服务但之前的没有关闭
  • @CDspace 我已经做了,但它不起作用

标签: google-maps


【解决方案1】:

我刚刚尝试过这个in tryit,它按预期工作:

var map;
var infowindow;

function initMap() {
infowindow = new google.maps.InfoWindow();
var cucuta = {lat: 7.9145395, lng: -72.505966};

map = new google.maps.Map(document.getElementById('googleMap'), {
  zoom: 14,
  center: cucuta,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

addMarker({lat: 7.9145395, lng: -72.505966}, 'This is the info of <br>MAP1');
addMarker({lat: 7.9045395, lng: -72.505966}, 'This is the info of <br>MAP2');
}

function addMarker(location, titulo) {

var marker = new google.maps.Marker({
  position: new google.maps.LatLng(location),
  map: map,
  title: titulo
});
marker.setMap(map);

google.maps.event.addListener(marker, 'click', function() {

  infowindow.setContent(titulo);
  infowindow.open(map, marker);
});
}

【讨论】:

  • 谢谢朋友,已经解决了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-08
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
相关资源
最近更新 更多