猿问

JS调用百度地图的删除标注功能时出现getLabel().content为空或者不是对象

我在C#调用JS进行百度地图定位,其中C#不断传入经纬度,然后js进行标注,在更新标注时我采用删除重复的标注然后再标注过来的数据。这是js代码
functionDrawPoint()
{
varArray=[];
vartotal_num=3;
for(vari=0;i{
Array.push(window.external.Getpoints(i));
}
varpoint=newBMap.Point(Array[0],Array[1]);
deletePoint(Array[2]);
trans(Array[0],Array[1]);
}
translateCallback=functionaddaddess(point)
{
varArray=[];
vartotal_num=3;
for(vari=0;iArray.push(window.external.Getpoints(i));
}
varCarnum=Array[2];
varmarker=newBMap.Marker(point);
map.addOverlay(marker);
varlabel=newBMap.Label(Carnum,{"offset":newBMap.Size(9,-15)});
marker.setLabel(label);
map.setZoom(14);
}
functiontrans(x,y){
varBDPoint=newBMap.Point(x,y);
BMap.Convertor.translate(BDPoint,0,translateCallback);//真实经纬度转成百度坐标
}
functiondeletePoint(num){
varallOverlay=map.getOverlays();
for(vari=1;i
if(allOverlay[i].getLabel().content==num){
map.removeOverlay(allOverlay[i]);
returnfalse;
}
}
}
在运行的时候第一个点可以标注,到第二个点时就有可能会出现getLabel().content,可是我用alert("marker的名称是"+allOverlay[i].getLabel().content);显示数据是对的。搞不懂这是为什么,求大神指导。
肥皂起泡泡
浏览 1869回答 2
2回答

RISEBY

functiondeletePoint(){//删除标注点//getMapLabel();varallOverlay=map.getOverlays();for(vari=0;i

POPMUISE

同求结果,不过我发现这个跟缓存似乎有关系,彻底清空缓存后,一切正常,重新打开页面或者刷新了页面,这个问题必然出现不知道是不是百度api的bug已找到解决方法,先判断overlay类型,在调用对应类型的的方法functiongetMapLabel(imei){varreLable=null;varallOverlay=map.getOverlays();for(vari=0;i
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答