Bing地图Api清除一层
Bing Maps Api clear a layer
我有一个工作良好的页面,它加载了一个Bing Map并创建了一个层,然后用多边形填充。然后,我需要重新加载生成多边形的JSON数据,这再次起作用,但数据随后被添加到另一层,因此显示在顶部。我试过删除图层、清除图层等,但似乎什么都不起作用。
有什么想法吗。
这是完成所有任务的函数。。。
function AddData() {
dataLayer = new Microsoft.Maps.Layer();
Microsoft.Maps.loadModule('Microsoft.Maps.GeoJson', function () {
var featureCollection = Microsoft.Maps.GeoJson.read(json, {
polygonOptions: {
strokeColor: 'LightSkyBlue',
strokeThickness: 2
}
});
for (var i = 0; i < featureCollection.length; i++) {
var fillColour = featureCollection[i].metadata.FillColor;
featureCollection[i].setOptions({ fillColor: fillColour });
Microsoft.Maps.Events.addHandler(featureCollection[i], 'click', displayClickBox);
Microsoft.Maps.Events.addHandler(featureCollection[i], 'mouseover', displayMouseOverBox);
Microsoft.Maps.Events.addHandler(featureCollection[i],'mouseout', displayMouseOut);
dataLayer.add(featureCollection[i], 0);
}
map.layers.insert(dataLayer);
});
}
var getJson = function () {
var onContentComplete = function (response) {
//Load the JSON data into the local variable for use latter in the project...
json = response.data;
//load the map now that we have the polygon data...
AddData();
};
var onError = function (reason) {
//An error has occured so display a message to the user...
$scope.error = "Server communication error please try again...";
//Log the error to the console for admin debug...
console.log(reason.data);
};
//Load the JSON for the map polygons into memory ready for display...
$http.get("../JSON/MapData.json")
.then(onContentComplete, onError);
}
正如我所说的,我已经尝试使用首先清除该层
dataLayer.clear();
但这似乎毫无作用。
请帮帮我,因为我已经为此工作了好几个小时了。
感谢
悬崖。
根据事物的声音,你希望所有数据都在一个层中渲染,但它却在渲染两个或更多层。发生这种情况是因为每次调用AddData函数时都要创建一个新的dataLayer实例。此外,这会覆盖dataLayer的本地变量,从而丢失对试图清除/删除的原始层的引用。如果要清除或删除图层,请在初始化新图层之前执行此操作。尝试在AddData函数的顶部添加以下内容:
if(dataLayer){
map.layers.remove(dataLayer);
}
或者,通过清除层(如果存在)或创建层(如果不存在)来重用该层:
if(dataLayer){
dataLayer.clear();
}else{
dataLayer = new Microsoft.Maps.Layer();
}
相关文章:
- OpenLayers-自定义图像在一层上的马赛克
- 用d3和topojson绘制一张地图
- 附近搜索的标记仅显示在最后一张地图上
- 如何从开放层地图中获取纬度/液化值
- 在开放图层地图中查看矢量叠加
- 如何打破每一层传单
- 根据标记在另一张地图中的拖动来更新地图中心
- 动能Js清除一层
- 如何显示具有多种样式的一层贴图
- Esri Javascript API人口普查信息弹出和公园弹出一张地图
- KineticJS-在屏幕外的画布上绘制一层
- Framer.js:操作层's通过另一层的动画状态's单击事件
- Json,在另一层获取信息
- 如何处理点击在画布上的某一层
- 对于JavaScript多维数组的深度拷贝,深入一层似乎就足够了.这是真的吗?
- 强制重新粉刷一层
- 在一张地图上显示多个谷歌地图标记和方向
- 我怎样才能拥有一张地图<字符串,integer>在javaScript中
- 如何延迟标记加载开放层地图与mapabstraction
- Bing地图Api清除一层