закрыть всплывающее окно с картой Google при перемещении мыши или мыши - PullRequest
0 голосов
/ 24 июня 2018

Как я могу закрыть всплывающее окно, которое открывается при наведении курсора на маркер после перемещения мыши или выхода из нее?

var icon1 = "imageA.png";
var icon2 = "imageB.png";

var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    icon: icon1,
    title: "some marker"
});

google.maps.event.addListener(marker, 'mouseover', function() {
    popup = new Popup(
          new google.maps.LatLng(-33.866, 151.196),
          document.getElementById('content'));
    popup.setMap(map);
    marker.setIcon(icon2);
});
google.maps.event.addListener(marker, 'mouseout', function() {
    // ? close popup
});

Вернее, мне нужно глобальное решение, чтобы закрыть все всплывающие окна на карте.

здесь появляется пользовательское всплывающее окно https://developers.google.com/maps/documentation/javascript/examples/overlay-popup

1 Ответ

0 голосов
/ 24 июня 2018

Вы можете увидеть следующее JSFiddle:

https://jsfiddle.net/inussaha/otuz1y5h/10/

нажмите на карту, вы увидите, как всплывающее окно удаляется.

класс Popup расширяется google.maps.OverlayView. так что у вас есть все функции, унаследованные от google.maps.OverlayView.

см. Следующий код для добавления / удаления Popup

popup.setMap(null); //this will remove the popup overlay;

//the following will show the popup overlay. (map must be a valid google map object)
popup.setMap(map);

поэтому ваш код должен выглядеть следующим образом:

var icon1 = "imageA.png";
var icon2 = "imageB.png";
var popup = null;

var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    icon: icon1,
    title: "some marker"
});

google.maps.event.addListener(marker, 'mouseover', function() {
    popup = new Popup(
          new google.maps.LatLng(-33.866, 151.196),
          document.getElementById('content'));
    popup.setMap(map); // show the popup
    marker.setIcon(icon2);
});

google.maps.event.addListener(marker, 'mouseout', function() {
    popup.setMap(null); // close the popup
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...