如何在Web API中清除Bing Map中的群集图钉?

时间:2016-05-31 06:13:00

标签: javascript bing-maps



var map, clusterLayer;
function GetMap() {
  map = new Microsoft.Maps.Map('#myMap',{
    credentials: 'My Key Here',
    zoom: 3
  });
  Microsoft.Maps.loadModule("Microsoft.Maps.Clustering", function () {
    //Generate 3000 random pushpins in the map view. 
    var pins = Microsoft.Maps.TestDataGenerator.getPushpins(3000, map.getBounds());
    //Create a ClusterLayer with options and add it to the map.
    clusterLayer = new Microsoft.Maps.ClusterLayer(pins, {
      clusteredPinCallback: createCustomClusteredPin,
      gridSize: 80
    });
    map.layers.insert(clusterLayer);
  });

}

function removeEverything() { 
     // None of the following functions seem to work
    //map.entities.clear() ;
    //map.layers.clear() ; 
     map.layers.remove(clusterLayer) ;  
}

function createCustomClusteredPin(){
  // Some Decoration  
}

 

<html>

<head>

    <title></title>

    <meta charset="utf-8" />

    <script type='text/javascript'

            src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap' async defer></script>
</head>

<body>

    <div id="myMap" style="position:relative;width:600px;height:400px;"></div>

</body>

</html>
&#13;
&#13;
&#13;

我在Bing Map上有一个使用JavaScript API生成的图钉集群层。我创建了一个聚集的图钉层并将其添加到地图中。问题是,一旦添加了图钉,我就无法从地图中删除图钉。我尝试了API的许多功能,但似乎没有任何作用。以上是我的代码。理想情况下,我还想要一个功能来隐藏地图中的 clusterLayer ,并在按钮点击时显示它。为此,我使用了 clusterLayer.setOptions({visible:false}),但这也不起作用。我错过了什么?任何帮助深表感谢。

PS:我从控制台调用 removeEverything()函数。

2 个答案:

答案 0 :(得分:0)

上周,实验分支增加了清除聚类层的功能。将“&amp; branch = experimental”添加到地图脚本网址。然后,您可以通过执行以下操作清除群集层:

clusterLayer.clear();

答案 1 :(得分:0)

我刚做了一个

map.layers.clear();

已授予 - 我只有一个群集层显示 我将假设这将删除x个层 - 在这种情况下 - 您最终将必须通过索引来完成。