百度地图Label和marker同一点marker被覆盖解决方案

  百度地图当同一个点存在Label和marker时,Label对象会覆盖Marker对象,如下图所示。

百度地图Label和marker同一点marker被覆盖解决方案

  百度api有个setZIndex方法,这个只是设置都是Marker对象时的层叠位置,Label是在另外的层,所以即使z-index设置得无论多大都会被Label覆盖掉,因为Label和Marker对象在不同的容器里面的,Label容器的z-index大于Marker容器的z-Index,所以设置Marker对象z-index无效,需要设置Marker对象的容器的z-index才行。

 if(!dotMarker){
dotMarker=new BMap.Marker(centerP);
map.addOverlay(dotMarker);
//下面这句是重点,设置Marker容器的z-index
//百度地图js sdk版本为2.0的,其他版本可能Mark对象所属的dom对象属性及父子关系不对导致无效或者报错
//需要自己用浏览器开发工具查看marker对象对应的dom对象属性及父子关系
dotMarker.Bc.parentNode.style.zIndex=500;
}

百度地图Label和marker同一点marker被覆盖解决方案

  最后效果如下

百度地图Label和marker同一点marker被覆盖解决方案

加支付宝好友偷能量挖...


原创文章,转载请注明出处:百度地图Label和marker同一点marker被覆盖解决方案

评论(0)Web开发网
阅读(55)喜欢(0)JavaScript/Ajax开发技巧