maptalks使用canvas自定义图标

背景

起因是ui设计了一版页面,其中标注类似下图,看到这个设计图,一时半会在api没有设置,咨询maptalks技术群里大佬后,决定用canvas绘制一个图标


651af9d5ae7a4622a0bee34af81aea0b_tplv-k3u1fbpfcp-watermark.png

原理

主要是用利用canvas里arcto来绘制,利用measureText检测文本绘制所需要长度,测量时需要设置字体大小,高度则是经验值,绘制好以后返回图片base64和宽高就行了

var marker = new maptalks.Marker(
  item,

  {  properties: {
      name:  name
    },
    'symbol' : {
      'markerFile'   : img,
      'markerWidth'  : width,
      'markerHeight' : height,
      'markerDx'     : 0,
      'markerDy'     : 0,
      'markerOpacity': 1,
    }
  }
).addTo(layer);

效果

基本达到了设计图预期

2d02429b3ee14d90b9a919bbf04be8fb_tplv-k3u1fbpfcp-watermark.png

https://juejin.cn/post/6990910784523993118
https://www.jianshu.com/p/890dc5736305

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容