首页 > 代码库 > 百度地图 自定义可编辑的交通路线
百度地图 自定义可编辑的交通路线
任务描述:
我想自己绘制一条从地铁站出口到天安门的道路,而且还需要根据我的喜好来改变这条路线。
如何实现:
鼠标左击地图,绘制路线;双击后,绘制结束;绘制结束后,路线可编辑。
TIPS:
API1.1以后,可以使用enableEditing()来开启折线可编辑功能。
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src=http://www.mamicode.com/"http://api.map.baidu.com/api?v=1.4"></script> <script type="text/javascript" src=http://www.mamicode.com/"http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script> <script type="text/javascript" src=http://www.mamicode.com/"http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script> <title>21.1自定义可编辑的交通路线</title></head><body> <div style="clear: both;"> <div style="float: left; width: 500px; height: 340px; border: 1px solid gray" id="container"> </div> </div></body></html><script type="text/javascript"> var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 18); var e1, e2; var p = []; //用来存储折线的点 var polyline; var doneDraw = 0; //判断是否绘制折线结束 map.addEventListener("click", function (e1) { //当鼠标单击时 if (doneDraw == 0) { //判断是否绘制曲线完毕 p.push(new BMap.Point(e1.point.lng, e1.point.lat)) //存储曲线上每个点的经纬度 if (polyline) { polyline.setPath(p); } //如果曲线存在,则获取折线上的点 setPath(p) else { polyline = new BMap.Polyline(p); } //如果折线不存在,就增加此点 if (p.length < 2) { return; } //当折线上的点只有一个时,不绘制 map.addOverlay(polyline); //绘制曲线 } }); map.addEventListener("dblclick", function (e2) { //当鼠标双击时:结束绘制,并可以编辑曲线 alert("绘制完成"); doneDraw = 10; polyline.enableEditing(); });</script>
百度地图 自定义可编辑的交通路线
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。