扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
利用mapboxgl怎么实现一个带箭头的轨迹线效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联服务项目包括长兴网站建设、长兴网站制作、长兴网页制作以及长兴网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,长兴网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到长兴省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!添加箭头核心代码如下,只需在配置layout
中添加symbol-placement
和symbol-spacing
属性即可:
// 添加箭头图层 function addArrowlayer() { map.addLayer({ 'id': 'arrowLayer', 'type': 'symbol', 'source': { 'type': 'geojson', 'data': routeGeoJson //轨迹geojson格式数据 }, 'layout': { 'symbol-placement': 'line', 'symbol-spacing': 50, // 图标间隔,默认为250 'icon-image': 'arrowIcon', //箭头图标 'icon-size': 0.5 } }); }
然而,为实现上述效果,确走了不少弯路。曾尝试集成Leaflet.PolylineDecorator
插件核心算法,通过对线的处理,计算每个箭头所在位置以及角度,也能实现上述效果。不过该方案在地图倾斜旋转后,有时会有箭头偏移的bug。
在解决此bug过程中,不经意间看到道路标注都是沿道路线方向,突然有了新的灵感。
重新查看mapboxgl API
,发现将layout
中的symbol-placement
设置为line
,即可实现沿着线的方向绘制箭头。
注意:
1.我所用图标为右侧方向箭头,结果与实际方向相符,如果图标为向上箭头,需修改icon-rotate
为90。
2.只把symbol-placement
设置为line
,箭头间距过于稀疏;需要设置下symbol-spacing
参数,symbol-spacing
默认值为250,修改为50即可实现文章首页图片效果。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流