GIS开发:胖箭头的画法

大兔子大兔子 提交于 2020-11-05 11:20:16

Cesium开发:简单箭头画法

mapbox-gl+turf.js简单箭头画法

之前分享过在两类地图上的箭头画法,效果是单线,顶部加了箭头的效果,这里分享一下在地图上胖箭头的画法。
胖箭头是在箭头的首尾两点上,横向进行了扩充,最后以面状图层的形式画出来。

胖箭头根据首尾两点生成面的方式:
--将首尾两点连接成直线,计算直线在地图中的北方向夹角,可以使用turf.js进行计算;
--计算和首尾直线垂直的6个点,分别是箭头尾部的两个点和箭头头部的4个样式点,turf.js中有方法计算这6个点,可以参见文章开始的简单箭头中的方法;

--将以上的6个点按照顺序连接起来,形成面状的效果,就能在地图上达到以下的胖箭头形状;

--在尾部的附近取一个点,重新进行面的连接,就能够实现箭头的燕尾效果,参见下图绿色线的效果;


地图上标绘效果,都能按照一定的算法进行计算,只不过按照经纬度的单位,需要进行一定的转换,使用一些开源的类库,能够解决不少问题。

本文分享自微信公众号 - 技术几句杂谈(tecsimplepoint)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!