您的当前位置:首页>全部文章>文章详情

【前端】html Antv L7 + mapbox 实现3D地图 3D中国地图 不限于中国地图

CrazyPanda发表于:2024-01-18 22:54:52浏览:447次TAG:

echarts的3D地图实在太丑了,还一堆bug

使用阿里的Antv可视化库L7,实现3D地图,底图是mapbox
参考示例:https://l7.antv.antgroup.com/zh/examples/polygon/3d#floatMap

如果不需要底图样式,可把Scene的style设置为blank

1.png

1.png
直接上代码了,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存储的视频文件,使用了&lt;a&gt;标签,点击后就会在浏览器打开预览,查找到了几个解决办法,在此记录一下。一、 下载文件的三种通用方式1、使用iframe实现只需要传一个文件下载地址的url即可&nbsp;downloadFile&nbsp;=&nbsp;(url)&nbsp;=&gt;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//下载方法 &nbsp;&nbsp;&nbsp;&nbsp;console.log(url)
发表于:2024-05-18 浏览:295 TAG:
【前端】微信小程序跳转公众号的三种方式
&nbsp;最近因为项目需要,要在小程序页面添加按钮,点击跳转公众号对应页面,目前没有直接点击按钮从小程序跳转到公众号页面的方法,但也有变相的实现方法,最后采用小程序webview内嵌公众号页面的方法来实现相关功能,在此记录一下:相关参考:小程序跳转公众号的三种方法 | 微信开放社区 (qq.com)开放能力 / official-account (qq.com)方法: 1:&nbsp; 公众号组件&lt;official-account&gt;&lt;/official-account&gt;
发表于:2024-03-20 浏览:310 TAG:
【HTML】箩筐地图的使用,设置考勤范围
接上篇【PHP】html使用高德地图设置考勤范围,项目换掉了高德地图,替换成了箩筐地图,继续实现考勤打卡范围设置。需求:系统需要考勤功能,并在WEB端设置考勤范围,用于员工手机端在此范围内打卡签到,WEB端需要设置考勤地点以及考勤范围。 上篇高德地图已经实现了此功能,现在要换成箩筐地图实现此功能 基本思路:绘制地图-&gt;根据地址获取坐标-&gt;根据坐标绘制圆形范围-&gt;根据半径自适应显示圆形范围1 箩筐地图箩筐地图开放平台https://testlbs.luokuang.com/ 同样
发表于:2024-02-07 浏览:865 TAG:
【前端】前端网络安全
今天思考下前端源码安全的东西(不是前端安全,只是针对于源码部分)。在我看来,源码安全有两点,一是防止抄袭,二是防止被攻破。实际上讲,前端的代码大多是没有什么可抄袭性,安全更是形同虚设的(任何前端输入都是不能相信的)。但如果还是想防止源码被查看,HTML、CSS并不能做什么,最终都会用露出来(最简单用Chrome开发者工具就可以看到),所以只能针对JS做文件的压缩合并和混淆。关于抄袭其实就前端来讲,代码没有什么好抄袭的,大多人都是抄UI设计(这个是躲不了),还有一些富前端的控件和算法,重要之处还是
发表于:2024-03-17 浏览:334 TAG:
【前端】使用canvas做一个可绘制矩形的画布(带有移动,缩放,删除)
使用canvas做一个可绘制矩形的画布(带有移动,缩放,删除)
发表于:2024-04-07 浏览:356 TAG:
【前端】vite+vue3+ts 项目安装 Ant Design of Vue方法
安装&nbsp;Ant Design of Vue 和@ant-design/icons-vue图标库npm&nbsp;add&nbsp;ant-design-vue&nbsp;@ant-design/icons-vue安装插件&nbsp;unplugin-vue-components&nbsp;配合vite可以自动帮我们引入组件npm&nbsp;add&nbsp;unplugin-vue-components&nbsp;-D配置 vite.config.tsimport&nbsp;{&amp;nbs
发表于:2024-02-23 浏览:313 TAG:
【前端】Ant Design of Vue安装
关于 ant-design-vue&nbsp;#众所周知,Ant Design 作为一门设计语言面世,经历过多年的迭代和积累,它对 UI 的设计思想已经成为一套事实标准,受到众多前端开发者及企业的追捧和喜爱,也是 React 开发者手中的神兵利器。希望 ant-design-vue 能够让 Vue 开发者也享受到 Ant Design 的优秀设计。ant-design-vue 是 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步,组件的 html 结构和 cs
发表于:2024-04-15 浏览:310 TAG:
【前端】Nodejs基于Windows安装教程
一、安装环境在进行 Node.js 环境的安装之前,您需要先安装并配置好以下环境:操作系统:Windows命令行工具:Node.js 是通过命令行工具进行使用和管理的,因此您需要选择一个适合您的命令行工具。在 Windows 上,您可以选择使用命令提示符(cmd)或 PowerShell。文本编辑器:Node.js 应用程序通常是使用文本编辑器编写的,因此您需要选择一个适合您的文本编辑器。常用的文本编辑器包括 Visual Studio Code、Sublime Text、Atom 等。网络连接
发表于:2024-07-15 浏览:234 TAG:
【HTML】必应地图BingMaps的使用
又换新地图了,之前换了箩筐地图,效果不能满足实际需要,这次换成了必应地图BingMaps,同样实现设置考勤区域的功能,效果还是挺不错的。相关阅读【HTML】html使用高德地图设置考勤范围&nbsp;【HTML】箩筐地图的使用,设置考勤范围一、&nbsp;获取应用KEY还是老样子,先注册账号,然后获取key。注册参考官方说明https://www.bingmap.cn/guide/db765008-dafe-11e8-a995-d46d6d978bfa?module=doc,这里不再过多说明。
发表于:2024-02-19 浏览:380 TAG:
【前端】JavaScript判断数组对象是否含有某个值的方法(6种)
【JavaScript基础语法】web前端判断数组对象是否含有某个值的方法(6种)知识回调场景复现实现方式(6种)利用循环遍历数组元素利用some,filter方法利用array.indexOf方法利用array.includes方法利用array.find方法利用set中has方法本期小结知识回调文章内容文章链接vue3 antd table表格的增删改查(一)input输入框根据关键字搜索【后台管理系统纯前端filter过滤】https://blog.csdn.net/XSL_HR/arti
发表于:2024-02-23 浏览:347 TAG: