因为公司研发需要,需要在百度地图生成的折线上显示路线的指向。开始想到的是使用在折线拐点添加箭头,
可以参考点击打开链接 。
但是后面发现这样数据量一大这个生成的东西很不好看。很多地方的箭头都会错位。
然后又自己去百度。谷歌呀的搜。终于发现了可以使用百度地图类中的IconSequence类来添加箭头标识。
终于实现了这样的效果
代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <title>折线上添加方向箭头</title> </head> <body> <div id="allmap"></div> </body> </html> <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("allmap"); // 创建Map实例 map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); // 初始化地图,设置中心点坐标和地图级别 map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 var sy = new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, { scale: 0.6,//图标缩放大小 strokeColor:'#fff',//设置矢量图标的线填充颜色 strokeWeight: '2',//设置线宽 }); var icons = new BMap.IconSequence(sy, '10', '30'); // 创建polyline对象 var pois = [ new BMap.Point(116.350658,39.938285), new BMap.Point(116.386446,39.939281), new BMap.Point(116.389034,39.913828), new BMap.Point(116.442501,39.914603) ]; var polyline =new BMap.Polyline(pois, { enableEditing: false,//是否启用线编辑,默认为false enableClicking: true,//是否响应点击事件,默认为true icons:[icons], strokeWeight:'8',//折线的宽度,以像素为单位 strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1 strokeColor:"#18a45b" //折线颜色 }); map.addOverlay(polyline); //增加折线 </script>
这样就能实现折线上添加方向标识。
注意。这个地方会有一个坑。这个坑我找了1天才发现。那就是,建立折线的点的集合 中的点。相邻的点不能相同(经纬度相同)。因为这个。找了好久的错。
扫描二维码关注公众号,回复:
357610 查看本文章