百度地图JavaScript API

5 篇文章 0 订阅

自定义控件

js代码

      //百度地图,定义一个控件类,即function    
        function ZoomControl(){
            // 设置默认停靠位置和偏移量  
            this.defaultAnchor = BMAP_ANCHOR_BOTTOM_RIGHT;    
            this.defaultOffset = new BMap.Size(10, 10);    
        }    
        // 通过JavaScript的prototype属性继承于BMap.Control   
        ZoomControl.prototype = new BMap.Control();

        //自定义控件必须实现initialize方法,并且将控件的DOM元素返回   
        //在本方法中创建个div元素作为控件的容器,并将其添加到地图容器中   
        ZoomControl.prototype.initialize = function(map){    
             // 创建一个总DOM元素   
             var div = document.createElement("div");    
             // 添加图例 
             var div1 = document.createElement("div");    
             var img1 = document.createElement("IMG");
             img1.setAttribute("src", "img/img_01.png");
             img1.setAttribute("height", "16px");
             img1.setAttribute("width", "16px");
             div1.appendChild(img1);
             div1.appendChild(document.createTextNode(" 自定义控件 ")); 
             var input1 = document.createElement("input");
             input1.setAttribute("type", "checkbox");
             input1.setAttribute("id", "checkbox1");
             input1.setAttribute("value", "1");
             div1.appendChild(input1);
             div.appendChild(div1);
            
             // 设置样式    
             div.style.cursor = "pointer";    
             div.style.border = "1px solid gray";    
             div.style.backgroundColor = "white";    
             // 绑定事件  
             div1.onclick = function(e){
                 listMainBeanByPtype(1);
             };
             // 添加DOM元素到地图中   
             map.getContainer().appendChild(div);    
             // 将DOM元素返回  
             return div;    
        }

listMainBeanByPtype方法功能是查询要在地图中标记的点。在需要展示控件的页面用js方法调用控件

        // 创建控件实例    
        var myZoomCtrl = new ZoomControl();    
        // 添加到地图当中    
        map.addControl(myZoomCtrl);

编写自定义函数,创建标注,设置label样式

        // 编写自定义函数,创建标注
        function addMarker(point, tit, con, id,icon) {
            var myIcon = new BMap.Icon(icon, new BMap.Size(20, 20));
            var marker = new BMap.Marker(point, {
                icon: myIcon
            });
            map.addOverlay(marker);
            marker.addEventListener("click", function() {
            	var sContent =
            	    "<div><h4 style='margin:0 0 5px 0;padding:0.2em 0'>"+tit+"</h4>" + 
            	    "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>"+con+"</p>" + 
            	    "<div><a href='html/detail.html?mainId="+id+"'>详情</a></div>" + 
            	    "</div>";
            	var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象
            	this.openInfoWindow(infoWindow);
            });
            //地图上显示的名称
            var label = new BMap.Label(tit, {
                offset: new BMap.Size(-38, 12)
            });
            label.setStyle({
           	  color : "000", //字体颜色
           	  fontSize : "10px",//字体大小 
            });  
            marker.setLabel(label);
        }

调用方法

                	var mypoint = new BMap.Point(point.dLongitude, point.dLatitude);
                	addMarker(mypoint, point.dName, point.dIntroduction, point.mainId,markerImg);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值