前言

官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm=1001.2014.3001.5501](https://blog.csdn.net/weixin_44402694/article/details/125414381?spm=1001.2014.3001.5501)
本文使用官网accesstoken,请自行生成私人token
mapbox绘制自动旋转的图标

前置图片

效果

代码实现

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>21、绘制自动旋转的图标</title><linkhref="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css"rel="stylesheet"/><script src="https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.js"></script><style>* {padding: 0;margin: 0;list-style: none;text-decoration: none;}html,body {width: 100%;height: 100%;}#map {width: 100%;height: 100%;}.btn-list {position: fixed;top: 100px;left: 100px;}</style></head><body><div id="map"></div><script>mapboxgl.accessToken ='pk.eyJ1Ijoid2FuZ3Rvbmd4dWUiLCJhIjoiY2pzY3E2M2k0MDk3NzN5dDA0Nmtia2h0cCJ9.oP9fEJxOgVzm0dWGvL6tGg'const map = new mapboxgl.Map({container: 'map', // 容器 idstyle: 'mapbox://styles/mapbox/streets-v11', // mapbox底图center: [108, 35], // 初始化中心点zoom: 4, // 初始化层级})map.on('load', () => {addRotateIcon()})function addRotateIcon() {map.addImage('rotate-img',this.createRotateIconByStaticDiagram('./img/typhoon.png'))map.addSource('rotate', {type: 'geojson',data: {type: 'FeatureCollection',features: [{type: 'Feature',geometry: { type: 'Point', coordinates: [114, 35] },},],},})map.addLayer({id: 'rotate',type: 'symbol',source: 'rotate',layout: {'icon-image': 'rotate-img','icon-size': 1,'icon-offset': [0, 0],'icon-rotation-alignment': 'map','icon-allow-overlap': true,'icon-ignore-placement': true,},})}// 传入一个png图片 创建一个动态图标function createRotateIconByStaticDiagram(url) {const size = 40return {width: size,height: size,data: new Uint8Array(size * size * 4),onAdd: function () {const canvas = document.createElement('canvas')canvas.width = this.widthcanvas.height = this.heightthis.context = canvas.getContext('2d')},render: function () {const context = this.contextcontext.clearRect(0, 0, this.width, this.height)const img = new Image()img.src = urlcontext.drawImage(img, 0, 0)img.onload = function () {context.clearRect(0, 0, 40, 40)context.translate(20, 20)context.rotate(Math.PI / 45)context.translate(-20, -20)context.drawImage(img, 0, 0)}this.data = context.getImageData(0, 0, this.width, this.height).datamap.triggerRepaint()return true},}}</script></body>
</html>

【MAPBOX基础功能】21、mapbox绘制自动旋转的图标相关推荐

  1. 【MAPBOX基础功能】23、mapbox通过marker的方式绘制波纹点位

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  2. 【MAPBOX基础功能】09、mapbox绘制线图层并进行添加、删除、更新、显隐等操作

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  3. 【MAPBOX基础功能】24、mapbox通过canvas方式绘制波纹点位

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  4. 【MAPBOX基础功能】11、mapbox绘制symbol icon图层并进行添加、删除、更新、显隐等操作

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  5. 【MAPBOX基础功能】31、实现mapbox的测面功能

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  6. 【MAPBOX基础功能】25、mapbox地图基础工具 - 缩放

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  7. 【MAPBOX基础功能】29、mapbox地图基础工具 - 获取当前地图层级

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  8. 【MAPBOX基础功能】26、mapbox地图基础工具 -定位到指定的位置

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

  9. 【MAPBOX基础功能】28、mapbox地图基础工具 -获取当前地图中心点

    前言 官网指引,生成accesstoken,下载相关依赖请翻阅[https://blog.csdn.net/weixin_44402694/article/details/125414381?spm= ...

最新文章

  1. redis 读取mysql数据类型_认识Redis与Redis的数据类型
  2. freebsd 手工安装zabbix2.0 php,zabbix 服务端,子客户端安装配置日志
  3. ps4修改服务器地区,ps4怎么修改服务器地址
  4. 全自动化虽然还早,但机器人劳力确实越来越便宜了
  5. 米斯特白帽培训讲义 漏洞篇 逻辑漏洞
  6. 帝国cms文章内容tags关键词设置调用方法以及tags静态化
  7. Opera Mobile Classic Emulator
  8. python 如何调用另一个路径下py文件的函数
  9. 数据库 基础学习7— 数据库编程
  10. html和css实现 字体变色 旋转 图标渐变
  11. 关于msp430系列单片机的一些入门心得(新手向)
  12. AQS——CLH队列维护方法详解
  13. mybatis自动生成更新时间和创建时间
  14. 黄巢的菊花,非常喜欢,贴出来共享一下
  15. linux升级gfortran,linux的gfortran的code到IVF,需要做哪些处理??急!
  16. 集宁一中高122班聚会筹委会正式成立
  17. jfinal整合IJPay paypal支付
  18. 干货|TDD落地:从僵化、优化到固化的过程
  19. 看完这些治愈的VR全景风景,相信你一定会心驰神往
  20. 干货!基于非递减分位数网络的值分布强化学习及其高效探索方法

热门文章

  1. 交叉熵损失函数分类_PyTorch学习笔记——多分类交叉熵损失函数
  2. 深信服2022年春招内推
  3. Pycharm连接mysql数据库报错1130,1054
  4. 【Java开发】Java实现企业微信消息推送,通过应用发送
  5. Windows10 启动WSL2 并安装Ubuntu遇到的一系列问题
  6. 图像旋转的原理,实现与优化
  7. Unity【Lerp Slerp】- 线性插值与球形插值的区别
  8. 盛世昊通:汽车行业资本入局不断,行业变局需考量
  9. 不建议使用CMS Java Garbage Collector:下一步是什么?
  10. 如何使用cmd进入打印机选项_怎么用cmd运行功能添加WiFi打印机