2017-06-21 170 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); 
} 
相关问题