代码改变世界

调用百度地图时显示图标不自动生成阴影

2012-05-23 18:09  呦菜  阅读(2512)  评论(0编辑  收藏  举报

前段时间调用百度地图的时候发现了在百度地图上设置图标时会自动生成阴影,我的源代码是这样的

success:function(msg){
            if(msg.error==0)
            {
                //用于存贮设备的状态
                var devStr = "";
          //设置图标
                var icon0 = new BMap.Icon(Common.imgurl+"marker_grey.png",new BMap.Size(27,25));
                var icon1 = new BMap.Icon(Common.imgurl+"marker_green.png",new BMap.Size(27,25));
                var icon2 = new BMap.Icon(Common.imgurl+"marker_red.png",new BMap.Size(27,25));
                //区域
                for(var i=0;i<msg.data.DeviceGroupList.length;i++)
                {
                    var points=[];
                    for(var j=0;j<msg.data.DeviceGroupList[i].Range.length;j++)
                    {
                        var lng=msg.data.DeviceGroupList[i].Range[j][0];
                        var lat=msg.data.DeviceGroupList[i].Range[j][1];
                        var point=new BMap.Point(lng,lat);
                        points.push(point);
                    }
                    var polygon = new BMap.Polygon(points,{strokeColor:"blue", strokeWeight:1, strokeOpacity:0.5});
                    map.addOverlay(polygon);
                }
                //设备
                for(var i=0;i<msg.data.DeviceList.length;i++)
                {
                    var devData = msg.data.DeviceList[i];
                    var lng=devData.Longitude;
                    var lat=devData.Latitude;
                    var status = devData.Status;
                    if(i==0){
                        var point = new BMap.Point(lng,lat);
                        map.centerAndZoom(point,15);
                    }
                    var value = devData.Value || "空";
                    var time = devData.Time || "空";
                    devStr = devData.DeviceName+"  数据:"+value+"  上报时间:"+time;
                    var point = new BMap.Point(lng,lat);
            //此处改为:var marker = new BMap.Marker(point,{icon:icon0});便可消除阴影
                    var marker = new BMap.Marker(point);
                    if(status == 0)
                    {
                        marker.setIcon(icon0);
                    }
                    else if(status == 1)
                    {
                        marker.setIcon(icon1);
                    }
                    else if(status == 2)
                    {
                        marker.setIcon(icon2);
                    }
             //鼠标悬浮时显示数据
                    marker.setTitle(devStr);
            //添加图标到地图
                    map.addOverlay(marker);
                }
            }
        }
    })

 

但是发现百度地图会自动生成阴影,所以想要去掉阴影只需要改动一小处就行了,即:

var marker = new BMap.Marker(point,{icon:icon0});

此处改动即可。