因为公司研发需要,需要在百度地图生成的折线上显示路线的指向。开始想到的是使用在折线拐点添加箭头,
可以参考点击打开链接 。
但是后面发现这样数据量一大这个生成的东西很不好看。很多地方的箭头都会错位。
然后又自己去百度。谷歌呀的搜。终于发现了可以使用百度地图类中的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天才发现。那就是,建立折线的点的集合 中的点。相邻的点不能相同(经纬度相同)。因为这个。找了好久的错。