简体   繁体   English

如何制作隐藏和显示信息气泡标记的功能

[英]How to make a function to hide and show infobubble markers

I need a checkbox to get a function to hide and show a marker or an group of markers 我需要一个复选框来获取隐藏和显示一个或一组标记的功能

for some reason idk (i'm new to google maps api) the function doesnt work with infobubbles, when i tried with infowindow it works.. any help ? 由于某些原因,idk(我是Google Maps API的新手)该功能不适用于infobubbles,当我尝试使用infowindow时,它可以工作..有帮助吗? thanks 谢谢

    var map;

  function init() {

    var mapCenter = new google.maps.LatLng(-22.967956,-43.197397);
    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 14,
      center: mapCenter,
      streetViewControl: true,
      mapTypeControl: true,
      mapLabels:true,
      mapTypeId: google.maps.MapTypeId.HYBRID
    });

    var myLatLng = new google.maps.LatLng(-22.973878,-43.192564);
    var myLatLng1 = new google.maps.LatLng(-22.968373,-43.183176);

    var marker = new google.maps.Marker({
      map: map,
      position: myLatLng,
      title: 'marker'
     });

     var marker1 = new google.maps.Marker({
      map: map,
      position: myLatLng1,
      title: 'marker1'
     });

     infoBubble = new InfoBubble({
      maxWidth: 246,
      maxHeight: 350


    });

    infoBubble.addTab('home', contenthome);
    infoBubble.addTab('Info', content);
    infoBubble.addTab('Fase', contentString);

    google.maps.event.addListener(marker, 'click', infobut); 

    function infobut(event) {

             if (!infoBubble.isOpen()) {
        infoBubble.open(map, marker);          }
        }

    infoBubble1 = new InfoBubble({
       maxWidth: 246,
      maxHeight: 350

    });

    infoBubble1.addTab('home', contenthome);
    infoBubble1.addTab('Info', content);
    infoBubble1.addTab('Fase', contentString);

    google.maps.event.addListener(marker1, 'click', infobut1); 

    function infobut1(event) {

             if (!infoBubble1.isOpen()) {
        infoBubble1.open(map, marker1);         }
    }

    function hidemarker() {
            marker1.setVisible(false);
          }

and the button 和按钮

       <input type="checkbox" onClick="hidemarker()" name="1qts" value="1 Quartos" class="botao2">

From your code it is not clear where init() function finishes. 从您的代码尚不清楚init()函数在何处结束。 I put close } just before hidemarker() function. 我在hidemarker()函数之前放了close } Problem is that variable marker1 is not visible and it should be made global like variable map . 问题在于变量marker1不可见,应该像变量map一样将其设置为全局。

And to close also info bubble, just call method close() : 要关闭信息气泡,只需调用方法close()

var map;

var marker1;

function init() {
    ...
    marker1 = new google.maps.Marker({
        map: map,
        position: myLatLng1,
        title: 'marker1'
    });
    ...
}

function hidemarker() {
    infoBubble1.close();
    marker1.setVisible(false);
}

google.maps.event.addDomListener(window, 'load', init);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM