2017-06-21 94 views
0

我的問題是我想隱藏圖標,他們有相同的圖標,然後我可以打印回地圖。例如,我有一個電腦圖標和一個對講機圖標。在地圖中,我想隱藏計算機圖標,它們會消失。之後,我可以隱藏對講機圖標。然後,我可以只將計算機圖標打印到地圖中。隱藏和顯示具有相同圖標的標記谷歌地圖api

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

我在推這樣的標記。我已隱藏並顯示錶格。

<div id="marker-panel"> 
    <input onclick="clearMarkers();" type=button value="Hide Markers"> 
    <input onclick="showMarkers();" type=button value="Show All Markers"> 
</div> 

和它們的功能就是這樣

function setMapOnAll(map) { 
     for (var i = 0; i < markers.length; i++) { 
     markers[i].setMap(map); 
     var imagebox = document.getElementById('images').value; 
     markers[i].setIcon(imagebox); 
     window.alert('Loop'); 
     } 
    } 

    function clearMarkers() { 
    setMapOnAll(null); 
    } 

    // Shows any markers currently in the array. 
    function showMarkers() { 
    setMapOnAll(map); 
} 

我的第一個問題是,我不能夠證明我的標記之後我點擊showMarkers();.我發現問題。我正在做循環,但它不能訪問圖標圖像。其實這是我的基本問題。但是我想讓他們像只隱藏電腦一樣,或者只隱藏對講機。任何幫助都會很棒。感謝您閱讀本文,我希望您能給我手:)有美好的一天..

+0

我能夠修復圖標圖像..問題是我定義地圖到功能,所以這是問題..我修好了,但我仍然有問題隱藏圖標取決於名稱:) –

回答

0

我解決了這個問題。這是不好的編碼,但它的工作我猜。我沒有任何問題。代碼是低於

if(document.getElementById('images').value == 'computer.png'){ 
       var x = 'The elevation at this point is ' + 
       results[0].elevation + ' meters.'; 
       var marker = new google.maps.Marker({ 
       position: location, 
       map: map, 
       icon: img, 
       title: x 
       }); 
       computer.push(marker); 
       //sağ tık silme fonksiyonu 
       google.maps.event.addListener(marker, 'rightclick', function(event) { 
       marker.setMap(null); 
       }); 
       } 
       else {// telsiz 
       var x = 'The elevation at this point is ' + 
       results[0].elevation + ' meters.'; 
       var marker = new google.maps.Marker({ 
       position: location, 
       map: map, 
       icon: img, 
       title: x 
       }); 
       telsiz.push(marker);} 
       google.maps.event.addListener(marker, 'rightclick', function(event) { 
       marker.setMap(null); 
       }); 
      } 


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

    function clearComputer(map) { 
    for(var i = 0; i<computer.length; i++){ 
     computer[i].setMap(null); 
    } 
    } 

    function clearTelsiz(map) { 
    for(var i = 0; i<telsiz.length; i++){ 
     telsiz[i].setMap(null); 
    } 
    } 

    // Shows any markers currently in the array. 
    function showMarkers() { 
    setMapOnAll(map); 
}