Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刷新Bing地图API内容_Javascript_Bing - Fatal编程技术网

Javascript 刷新Bing地图API内容

Javascript 刷新Bing地图API内容,javascript,bing,Javascript,Bing,我使用的是Bing地图API版本7。我在地图上绘制了4个EntityCollection:1个用于一组图钉,1个用于与这些图钉关联的一组信息框,1个用于一组多段线,1个用于与这些多段线关联的一组信息框。我使用setInterval尝试定期刷新多段线及其关联信息框的内容。我清除多段线的实体集合,如下所示: //clear polylines from map map.entities.clear(mapSegments); map.entities.clear(mapSegment

我使用的是Bing地图API版本7。我在地图上绘制了4个EntityCollection:1个用于一组图钉,1个用于与这些图钉关联的一组信息框,1个用于一组多段线,1个用于与这些多段线关联的一组信息框。我使用setInterval尝试定期刷新多段线及其关联信息框的内容。我清除多段线的实体集合,如下所示:

//clear polylines from map
    map.entities.clear(mapSegments);
    map.entities.clear(mapSegmentInfoboxes);
然后在再次填充之前重新初始化它们:

//new polyline collection
    mapSegments = new Microsoft.Maps.EntityCollection();
    mapSegmentInfoboxes = new Microsoft.Maps.EntityCollection();
此功能有效,但是,刷新完成后,我的图钉信息框将停止显示

图钉及其关联的信息框在刷新期间保持不变,那么为什么我的图钉信息框会停止显示?显示信息框的图钉的click事件仍会激发,但不会显示任何内容


执行单个语句
map.entities.clear(mapSegments)
似乎会搞乱另一个与之无关的EntityCollection。

在Bing文档中调用map.entities.clear()时;它将清除map.entities数组中的所有实体。看起来clear()方法并不排除任何周长参数

你可以试试这些方法中的一种

//clear polylines from map
map.entities.remove(mapSegments);
map.entities.remove(mapSegmentInfoboxes);

或者更完整的例子是

for(var i = map.entities.getLength()-1; i > = 0; i--) {
    var polyline= map.entities.get(i); 
    if (polyline instanceof Microsoft.Maps.Polyline) { 
    map.entities.removeAt(i);  
   }
} 
displayAlert('Polylines removed');
只需将“instanceof Microsoft.Maps.Polyline”替换为要删除的实体类型

for(var i = map.entities.getLength()-1; i > = 0; i--) {
    var polyline= map.entities.get(i); 
    if (polyline instanceof Microsoft.Maps.Polyline) { 
    map.entities.removeAt(i);  
   }
} 
displayAlert('Polylines removed');