最近在使用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即可实现文章首页图片效果。
在线示例
在线示例:http://gisarmory.xyz/blog/index.html?demo=MapboxGLPolylineDecorator
代码地址:http://gisarmory.xyz/blog/index.html?source=MapboxGLPolylineDecorator
原文地址:http://gisarmory.xyz/blog/index.html?blog=MapboxGLPolylineDecorator。
到此这篇关于mapboxgl实现带箭头轨迹线的文章就介绍到这了,更多相关mapboxgl实现带箭头轨迹线内容请搜索站长技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长技术!
水平线 使用 hr / 标签在当前位置绘制一条水平分割线。 例子: XML/HTML Code 复...
前言 今天遇到一个问题,用正则表达式去检查同一个字符串时,交替返回true和fals...
”工欲善其事,必先利其器”,学习一门语言,选择一款高效的IDE(集成开发环境)...
java volatile 关键字详解 一,什么是volatile关键字,作用是什么 ? volatile是jav...
在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要用到正则...
三、支持XML的公司和它们的开发工具 尽管XML还处在开发阶段,其标准正在由W3C组...
2021/4/21 更新 这个设计文档签入了 repo https://codechina.csdn.net/csdn/csdn...
本文实例讲述了正则表达式之零宽断言。分享给大家供大家参考,具体如下: 前言 ...
下面,就写一下我自己对 redux 和 React-redux 的学习以及使用的心得,权当是对...
在做计算机组成原理的习题碰到片选芯片的题目让画出逻辑图写出逻辑表达式多少有...