2014-02-14 2 views
0

мне нужен флажок, чтобы получить функцию, чтобы скрыть и показать маркер или группу маркеровКак сделать функцию, чтобы скрыть и показать infobubble маркеры

по какой-то причине ИКА (я новичок в Google Maps API) функция не работает с infobubbles, когда я пытался с infowindow это работает .. любая помощь? благодаря

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); 
      } 

и кнопка

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

ответ

0

Из кода не ясно, где init() функция заканчивается. Я положил близко } как раз перед hidemarker() функция. Проблема в том, что переменная marker1 не видна и должна быть сделана глобальной, как переменная map.

И закрыть также информация пузырь, просто вызовите метод 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); 
Смежные вопросы