百度地图demo
2018-06-24 01:15:05来源:未知 阅读 ()
1 // 百度地图API功能 2 var map = new BMap.Map("allmap"); // 创建Map实例 3 map.centerAndZoom(new BMap.Point(106.20647861, 38.50262101), 13); // 初始化地图,设置中心点坐标和地图级别 4 map.addControl(new BMap.MapTypeControl()); //添加地图类型控件 5 //map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的 6 //map.centerAndZoom("银川",13); // 初始化地图,用城市名设置地图中心点 7 map.enableScrollWheelZoom(); //开启鼠标滚轮缩放 8 cdBz();//右键菜单选择标注 9 gjllqdw();//根据浏览器定位 10 //addMathMarker();//随机添加标注 11 addMarkerWindow();//给点不同标注添加不同信息窗口 12 console.log(map); 13 14 //图标标注 15 function showInfo(e){ 16 //alert(e.point.lng + ", " + e.point.lat); 17 //console.log(e.point.lng + ", " + e.point.lat); 18 var point=new BMap.Point(e.point.lng , e.point.lat); 19 addBz(point); //创建标注 20 } 21 //单击获取点击的经纬度 22 function addClick(){ 23 map.addEventListener("click", showInfo); 24 } 25 //单击取消获取点击的经纬度 26 function removeClick(){ 27 map.removeEventListener("click", showInfo); 28 } 29 30 //创建标注 31 function addBz(point){ 32 var marker = new BMap.Marker(point);// 创建标注 33 map.addOverlay(marker); // 将标注添加到地图中 34 marker.disableDragging(); // 不可拖拽 35 //marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 36 addyjcd(marker,point);//标注添加右键菜单 37 38 } 39 40 // 编写自定义函数,创建标注 41 function addMarker(point){ 42 var marker = new BMap.Marker(point); 43 map.addOverlay(marker); 44 addCkNr(marker,point);//给标注添加信息框 45 } 46 47 //获取覆盖物位置 48 function attribute(e){ 49 var p = e.target; 50 alert("marker的位置是" + p.getPosition().lng + "," + p.getPosition().lat); 51 } 52 53 //右键菜单选择 54 function cdBz(){ 55 var menu = new BMap.ContextMenu();//创建右侧菜单 56 var txtMenuItem = [ 57 { 58 text:'开始标注', 59 callback:function(){addClick()} 60 },{ 61 text:'完成标注', 62 callback:function(){removeClick()} 63 } 64 ]; 65 for(var i=0; i < txtMenuItem.length; i++){//循环给右侧菜单添加功能选项 66 menu.addItem(new BMap.MenuItem(txtMenuItem[i].text,txtMenuItem[i].callback,100)); 67 } 68 map.addContextMenu(menu); 69 } 70 //给标注添加信息窗口 71 function addCkNr(marker,point){ 72 var infoWindow = new BMap.InfoWindow('位置坐标:'+point.lng+','+point.lat, opts); // 创建信息窗口对象 73 marker.addEventListener("click", function(){ 74 map.openInfoWindow(infoWindow,point); //开启信息窗口 75 }); 76 } 77 78 function getBzZb(){ 79 console.log(marker.point); 80 } 81 //根据浏览器定位 82 function gjllqdw(){ 83 var geolocation = new BMap.Geolocation(); 84 geolocation.getCurrentPosition(function(r){ 85 if(this.getStatus() == BMAP_STATUS_SUCCESS){ 86 var mk = new BMap.Marker(r.point);//创建浏览器坐标点 标注 87 map.addOverlay(mk);//添加到 地图上 88 map.panTo(r.point); 89 addCkNr(mk,r.point);//给标注添加 窗口 90 mk.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画 91 alert('您的位置:'+r.point.lng+','+r.point.lat); 92 console.log('您的位置:'+r.point.lng+','+r.point.lat); 93 return r.point; 94 } 95 else { 96 alert('failed'+this.getStatus()); 97 } 98 },{enableHighAccuracy: true}) 99 100 } 101 //给标注添加右键菜单 102 function addyjcd(marker,point){ 103 var removeMarker = function(e,ee,marker){//右键菜单 删除方法 104 map.removeOverlay(marker); 105 } 106 //创建右键菜单 107 var markerMenu=new BMap.ContextMenu(); 108 markerMenu.addItem(new BMap.MenuItem('删除',removeMarker.bind(marker)));//给菜单添加删除选项 109 var txtMenuItem = [ 110 { 111 text:'移动标注', 112 callback:function(){marker.enableDragging()} 113 },{ 114 text:'不可移动标注', 115 callback:function(){marker.disableDragging()} 116 } 117 ]; 118 for(var i=0; i < txtMenuItem.length; i++){//循环给右侧菜单添加功能选项 119 markerMenu.addItem(new BMap.MenuItem(txtMenuItem[i].text,txtMenuItem[i].callback,100)); 120 } 121 122 marker.addContextMenu(markerMenu);//给标注添加 右侧菜单 123 124 marker.addEventListener("dragend", function(e){ //监听标注移动后坐标 125 alert("当前位置:" + e.point.lng + ", " + e.point.lat); 126 }) 127 } 128 129 //随机创建标注 130 function addMathMarker(){ 131 // 随机向地图添加25个标注 132 var bounds = map.getBounds(); 133 var sw = bounds.getSouthWest(); 134 var ne = bounds.getNorthEast(); 135 console.log(bounds); 136 var lngSpan = Math.abs(sw.lng - ne.lng); 137 var latSpan = Math.abs(ne.lat - sw.lat); 138 var data_info=new Array() 139 for (var i = 0; i < 25; i ++) {//循环添加标注 140 var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7)); 141 //addMarker(point); 142 var myArray=new Array() 143 myArray[0]=point.lng; 144 myArray[1]=point.lat; 145 myArray[2]="标注坐标:"+point.lng+","+point.lat+'<a href="https://www.baidu.com">百度'+i+':https://www.baidu.com</a>'; 146 myArray[3]=point; 147 data_info[i]=myArray; 148 } 149 return data_info; 150 } 151 152 //给点不同标注添加不同信息窗口 153 function addMarkerWindow(){ 154 //坐标和信息 155 var data_info = addMathMarker(); 156 157 for(var i=0;i<data_info.length;i++){ 158 //设置自定义图片 159 var myIcon=null; 160 /* 161 if(i<26){ 162 myIcon= new BMap.Icon("../js/map-marker-flag-3-right-pink.png", new BMap.Size(300,157)); 163 } 164 if(i<20){ 165 myIcon= new BMap.Icon("../js/map-marker-flag-3-right-chartreuse.png", new BMap.Size(300,157)); 166 } 167 if(i<10){ 168 myIcon= new BMap.Icon("../js/map-marker-flag-3-right-azure.png", new BMap.Size(300,157)); 169 } 170 */ 171 var marker = new BMap.Marker(new BMap.Point(data_info[i][0],data_info[i][1])/* ,{icon:myIcon} */); // 创建标注 172 var content = data_info[i][2]; 173 map.addOverlay(marker); // 将标注添加到地图中 174 addClickHandler(content,marker); 175 addyjcd(marker,data_info[i][3]);//标注添加右键菜单 176 } 177 } 178 //给该标注添加监听事件 179 function addClickHandler(content,marker){ 180 marker.addEventListener("click",function(e){//事件监听 181 openInfo(content,e)} 182 ); 183 } 184 //获取该标注 坐标 并创建窗口 并开启 185 function openInfo(content,e){ 186 var p = e.target; 187 var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat); 188 var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象 189 map.openInfoWindow(infoWindow,point); //开启信息窗口 190 } 191 192 193 //窗口样式 194 var opts = { 195 width : 300, // 信息窗口宽度 196 height: 100, // 信息窗口高度 197 title : "信息窗口" , // 信息窗口标题 198 enableMessage:true//设置允许信息窗发送短息 199 };
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 详解javascript demo 基本技巧 2019-09-30
- 使用百度echarts仿雪球分时图(一) 2019-08-14
- vue集成百度富文本编辑器 2019-08-14
- 微信小程序地图开发总结 2019-08-14
- react 地图可视化 cesium 篇 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash