【前端】html Antv L7 + mapbox 实现3D地图 3D中国地图 不限于中国地图
CrazyPanda发表于:2024-01-18 22:54:52浏览:447次
echarts的3D地图实在太丑了,还一堆bug
使用阿里的Antv可视化库L7,实现3D地图,底图是mapbox
参考示例:https://l7.antv.antgroup.com/zh/examples/polygon/3d#floatMap
如果不需要底图样式,可把Scene的style设置为blank
直接上代码了,vue的就不说了,项目是html的
mapbox依赖
<script src='https://api.mapbox.com/mapbox-gl-js/v2.9.1/mapbox-gl.js'></script> <link href='https://api.mapbox.com/mapbox-gl-js/v2.9.1/mapbox-gl.css' rel='stylesheet' />
L7依赖
<script src = 'https://unpkg.com/@antv/l7'></script>
body元素
<div id="idMap"> </div>
实现
<script> mapboxgl.accessToken = 'pk.------------------你的mapboxtoken'; const scene = new L7.Scene({ id: 'idMap', map: new L7.Mapbox({ style: 'dark', center: [ 120, 29.732983 ], pitch: 40, zoom: 4, }) }); scene.on('loaded', () => { let lineDown, lineUp, textLayer; fetch('https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json') .then(res => res.json()) .then(data => { const texts = []; data.features.map(option => { const { name, center } = option.properties; const [ lng, lat ] = center || []; texts.push({ name, lng, lat }); return ''; }); textLayer = new L7.PointLayer({ zIndex: 2 }) .source(texts, { parser: { type: 'json', x: 'lng', y: 'lat' } }) .shape('name', 'text') .size(14) .color('#0ff') .style({ textAnchor: 'center', // 文本相对锚点的位置 center|left|right|top|bottom|top-left spacing: 1, // 字符间距 padding: [ 1, 1 ], // 文本包围盒 padding [水平,垂直],影响碰撞检测结果,避免相邻文本靠的太近 stroke: '#0ff', // 描边颜色 strokeWidth: 0.2, // 描边宽度 raisingHeight: 300000, textAllowOverlap: true }); scene.addLayer(textLayer); lineUp = new L7.LineLayer({ zIndex: 1 }) .source(data) .shape('line') .color('#0DCCFF') .size(1) .style({ raisingHeight: 300000 }); scene.addLayer(lineUp); const provincelayer = new L7.PolygonLayer({}) .source(data) .size(300000) // 切面高度 .shape('extrude') .color('#0DCCFF') .active({ color: 'rgb(100,230,255)' }) .style({ heightfixed: true, pickLight: true, raisingHeight: 0, // 抬升高度,距离底图的高度 opacity: 0.8 }); scene.addLayer(provincelayer); return ''; }); return ''; });
原文连接https://blog.csdn.net/zk_1325572803/article/details/129083017
猜你喜欢
- 【前端】前端实现文件下载自动打开预览的解决方法
- 问题:前端使用React开发,想要下载阿里云OSS存储的视频文件,使用了<a>标签,点击后就会在浏览器打开预览,查找到了几个解决办法,在此记录一下。一、 下载文件的三种通用方式1、使用iframe实现只需要传一个文件下载地址的url即可 downloadFile = (url) => { //下载方法 console.log(url)
- 【前端】微信小程序跳转公众号的三种方式
- 最近因为项目需要,要在小程序页面添加按钮,点击跳转公众号对应页面,目前没有直接点击按钮从小程序跳转到公众号页面的方法,但也有变相的实现方法,最后采用小程序webview内嵌公众号页面的方法来实现相关功能,在此记录一下:相关参考:小程序跳转公众号的三种方法 | 微信开放社区 (qq.com)开放能力 / official-account (qq.com)方法: 1: 公众号组件<official-account></official-account>
- 【HTML】箩筐地图的使用,设置考勤范围
- 接上篇【PHP】html使用高德地图设置考勤范围,项目换掉了高德地图,替换成了箩筐地图,继续实现考勤打卡范围设置。需求:系统需要考勤功能,并在WEB端设置考勤范围,用于员工手机端在此范围内打卡签到,WEB端需要设置考勤地点以及考勤范围。 上篇高德地图已经实现了此功能,现在要换成箩筐地图实现此功能 基本思路:绘制地图->根据地址获取坐标->根据坐标绘制圆形范围->根据半径自适应显示圆形范围1 箩筐地图箩筐地图开放平台https://testlbs.luokuang.com/ 同样
- 【前端】前端网络安全
- 今天思考下前端源码安全的东西(不是前端安全,只是针对于源码部分)。在我看来,源码安全有两点,一是防止抄袭,二是防止被攻破。实际上讲,前端的代码大多是没有什么可抄袭性,安全更是形同虚设的(任何前端输入都是不能相信的)。但如果还是想防止源码被查看,HTML、CSS并不能做什么,最终都会用露出来(最简单用Chrome开发者工具就可以看到),所以只能针对JS做文件的压缩合并和混淆。关于抄袭其实就前端来讲,代码没有什么好抄袭的,大多人都是抄UI设计(这个是躲不了),还有一些富前端的控件和算法,重要之处还是
- 【前端】vite+vue3+ts 项目安装 Ant Design of Vue方法
- 安装 Ant Design of Vue 和@ant-design/icons-vue图标库npm add ant-design-vue @ant-design/icons-vue安装插件 unplugin-vue-components 配合vite可以自动帮我们引入组件npm add unplugin-vue-components -D配置 vite.config.tsimport {&nbs
- 【前端】Ant Design of Vue安装
- 关于 ant-design-vue #众所周知,Ant Design 作为一门设计语言面世,经历过多年的迭代和积累,它对 UI 的设计思想已经成为一套事实标准,受到众多前端开发者及企业的追捧和喜爱,也是 React 开发者手中的神兵利器。希望 ant-design-vue 能够让 Vue 开发者也享受到 Ant Design 的优秀设计。ant-design-vue 是 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步,组件的 html 结构和 cs
- 【前端】Nodejs基于Windows安装教程
- 一、安装环境在进行 Node.js 环境的安装之前,您需要先安装并配置好以下环境:操作系统:Windows命令行工具:Node.js 是通过命令行工具进行使用和管理的,因此您需要选择一个适合您的命令行工具。在 Windows 上,您可以选择使用命令提示符(cmd)或 PowerShell。文本编辑器:Node.js 应用程序通常是使用文本编辑器编写的,因此您需要选择一个适合您的文本编辑器。常用的文本编辑器包括 Visual Studio Code、Sublime Text、Atom 等。网络连接
栏目分类全部>