百度地图 自定义可编辑的交通路线
任务描述:
我想自己绘制一条从地铁站出口到天安门的道路,而且还需要根据我的喜好来改变这条路线。
如何实现:
鼠标左击地图,绘制路线;双击后,绘制结束;绘制结束后,路线可编辑。
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://api.map.baidu.com/api?v=1.4"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script> <script type="text/javascript" src="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>
posted on 2014-12-02 14:20 AlexGeng 阅读(10064) 评论(0) 编辑 收藏 举报