关闭所有信息窗口谷歌地图API V3?

vimes1984

按下其他图钉或单击地图本身时,如何关闭所有信息窗口?我正在使用http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html和kml叠加层。到目前为止,这是我的JS:

jQuery(document).ready(function ($) {
    function initialize() {
        google.maps.visualRefresh = true;
        var myLatlng = new google.maps.LatLng(51.201465, -0.30244);
        var mapOptions = {
            zoom: 12,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var map = new google.maps.Map(document.getElementById('map-canvas'),
        mapOptions);

        var kmlLayer = new google.maps.KmlLayer({
            url: 'http://***.com/new/wp-content/themes/required-starter/CGAGolfAcademies.kml?rand=' + (new Date()).valueOf(),
            suppressInfoWindows: true,
            map: map
        });

        google.maps.event.addListener(kmlLayer, 'click', function (kmlEvent) {
            showInContentWindow(kmlEvent.latLng, kmlEvent.featureData.description);
        });

        function showInContentWindow(position, text) {
            var content = "<div class='info_win'><p>" + text + "</p></div>";
            var infowindow =new InfoBox({
                 content: content,
                 disableAutoPan: false,
                 maxWidth: 0,
                 position: position,
                 pixelOffset: new google.maps.Size(-140, 0),
                 zIndex: null,
                 boxStyle: { 
                  background: "#FBFBFB"
                  ,opacity: 0.90
                  ,width: "280px"
                 },
                 closeBoxMargin: "10px 2px 2px 2px",
                 closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
                 infoBoxClearance: new google.maps.Size(1, 1),
                 isHidden: false,
                 pane: "floatPane",
                 enableEventPropagation: false
        });


    infowindow.open(map);

        }
                    /******AJAX MAP ****/
            siteURL = 'http://' + top.location.host.toString();
            coachesLinks = jQuery('.info_win a');
            coachesLinks.click(function (e) {
                e.preventDefault();
            });
            coachesLinks.click(function (e) {
                alert('FRED');
                $el = jQuery(this);
                URL = $el.attr('href');
                shareurl = $el.attr('href');
                URL = URL + " .main";
                jQuery('#content_two').show('slow').load(URL, function () {
                    scrollToAnchor('content_two');
                    $('.main').css('overflow', 'visible');
                    $('#content_two').css('overflow', 'visible');
                    jQuery('#content_two .back').on('click', function () {
                        jQuery(this).hide('slow');
                        var contentTwo = jQuery('#content_two');
                        if (contentTwo.is(':hidden')) {
                            jQuery('#content_two .back').hide();
                        } else {
                            contentTwo.hide('slow');
                            jQuery('#content > .main').show('slow');
                            jQuery('#content > .main').css('overflow', 'visible');
                            scrollToAnchor('access');
                        }
                    });

                });
                $('#content > .main').hide('slow');
            });

    }

    google.maps.event.addDomListener(window, 'load', initialize);
});
戴维·康拉德

如您在API文档中所见,InfoBox具有close()-method。

收集您在数组中创建的所有InfoBox。然后close,当您需要一次关闭所有信息框时,请遍历此数组并调用每个信息框。

在顶部,添加一个数组以容纳创建的所有信息框

jQuery(document).ready(function ($) {
    var infoWindows = [];

在函数中,在之前showInContentWindow添加以下内容var infowindow=new..,例如infowindow.open

//add infowindow to array
infoWindows.push(infowindow); 

添加此功能

function closeAllInfoWindows() {
  for (var i=0;i<infoWindows.length;i++) {
     infoWindows[i].close();
  }
}

通过链接在这里调用

<a href="#" onclick="closeAllInfoWindows();">Close all infowindows</a>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关闭所有信息窗口谷歌地图API V3?

来自分类Dev

谷歌地图v3信息框未加载

来自分类Dev

谷歌地图api v3显示不同的标记

来自分类Dev

在外部div google maps api v3中关闭信息窗口

来自分类Dev

谷歌地图 API v3 绘图管理器没有正确绘制虚线折线

来自分类Dev

谷歌地图api v3无法获取信息框以在动态创建的多边形上显示

来自分类Dev

带有多个标记的google api v3信息窗口不起作用

来自分类Dev

带有信息窗口和图钉的 Google Maps API v3 多个标记

来自分类Dev

谷歌地图v3模糊与科尔多瓦/ phonegap

来自分类Dev

如何从谷歌地图v3删除标记?

来自分类Dev

谷歌地图v3模糊与科尔多瓦/ phonegap

来自分类Dev

谷歌地图在点击javascript v3上添加标记

来自分类Dev

Google Maps v3适合多个信息窗口的内容

来自分类Dev

如何使用YouTube API V3?

来自分类Dev

Youtube v3 API视频语言

来自分类Dev

Maps API v3:计算方位

来自分类Dev

Youtube API V3和Etag

来自分类Dev

与QuickBooks Online V3 API交互

来自分类Dev

Youtube API v3 .NET集成

来自分类Dev

页面令牌youtube api v3

来自分类Dev

Blogger Api V3中的分页

来自分类Dev

YouTube API v3获取评论

来自分类Dev

youtube数据API v3搜索

来自分类Dev

Youtube API V3和Etag

来自分类Dev

YouTube iframe API v3限制

来自分类Dev

Gwt YouTube数据API v3

来自分类Dev

Google Calendar API V3授权

来自分类Dev

Github API(V3)内容密钥

来自分类Dev

Youtube API v3获得评论