2016-10-11 12 views
0

地図からすべての図面を消去するjavascript関数を探しています。 map.removeMarkers()またはmap.removeOverlays()のような形ですが、図形の場合は特に円です。Googleマップ:すべてのサークルを削除

Androidでこれを行う方法についていくつかの回答がありましたが、私はウェブソリューションを探しています。私は私の円を描くようにgmaps.jsを使用しています:

// create circle loop 
for(i = 0; i < data.mapArray.length; i++) { 

    circle = map.drawCircle({ 
     lat: data.mapArray[i].lat, 
     lng: data.mapArray[i].lng, 
     radius: parseInt(data.mapArray[i].radius), 
     strokeColor: '#'+data.mapArray[i].color, 
     strokeWeight: 8, 
     fillOpacity: 0, 

     click: (function (e) { 
      return function() { 
       $('#'+modalType).modal({ 
        remote: modalURL+e 
       }); 
      }; 
     })(data.mapArray[i].id) 
    }); 

} // end loop 

私はこのループ内で、私は配列に円を追加し、それらのすべてをクリアする関数を呼び出す必要があると推測しているが、私はよそれをどのように実行するかわからない。

答えて

2

一つの簡単な解決策は、配列内のオブジェクトを格納することです

<input type="button" value="Clear all" onclick="removeAllcircles()"/> 
<script> 
var circles = []; 
// create circle loop 
for(i = 0; i < data.mapArray.length; i++) { 
    var circle = map.drawCircle({ 
     lat: data.mapArray[i].lat, 
     lng: data.mapArray[i].lng, 
     radius: parseInt(data.mapArray[i].radius), 
     strokeColor: '#'+data.mapArray[i].color, 
     strokeWeight: 8, 
     fillOpacity: 0, 
     click: (function (e) { 
      return function() { 
       $('#'+modalType).modal({ 
        remote: modalURL+e 
       }); 
      }; 
     })(data.mapArray[i].id) 
    }); 
    // push the circle object to the array 
    circles.push(circle); 
} // end loop 
// remove All circles 
function removeAllcircles() { 
    for(var i in circles) { 
    circles[i].setMap(null); 
    } 
    circles = []; // this is if you really want to remove them, so you reset the variable. 
} 
</script> 

EDIT

あなたはその配列を持っていたら、あなたは同様に、の/を上の切り替え、またはいくつかの特定のサークルをターゲットにそれを使用することができますcirckles [17] ...

<input type="button" value="Toggle on" onclick="toggleOn()"/> 
<input type="button" value="Toggle off" onclick="toggleOff()"/> 
<script> 
// Toggle off 
function toggleOff() { 
    for(var i in circles) { 
    circles[i].setMap(null); 
    } 
} 
// Toggle on 
function toggleOn() { 
    for(var i in circles) { 
    circles[i].setMap(map); 
    } 
} 
</script> 
+0

実感ありがとう!よく働く。 – Lauren

+0

はい、喜んで助けてください –

関連する問題