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

这篇具有很好参考价值的文章主要介绍了html Antv L7 + mapbox 实现3D地图 3D中国地图 不限于中国地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

antv地图,前端,html,echarts,javascript,antv,L7

antv地图,前端,html,echarts,javascript,antv,L7
直接上代码了,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>

实现文章来源地址https://www.toymoban.com/news/detail-619678.html

<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 '';
    });   

到了这里,关于html Antv L7 + mapbox 实现3D地图 3D中国地图 不限于中国地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • echarts 5.0——3d中国地图和飞线

    echarts 5.0的版本样式语法与4.0及以下的语法有个别差异,使用旧语法浏览器会警告提示。 3d地图常用的实现方法有两种。一种是使用GL来实现,一种是使用叠层和阴影来实现,本文将使用叠层和阴影来实现。先看效果图: 1. 一定要使用 echarts 5.0及以上的版本; 2. echarts 5.0没有

    2024年04月13日
    浏览(35)
  • 手把手教 Vue3.2+Vite+Echarts 5 绘制3D线条效果中国地图

    本篇文章介绍 Vue3.2+Vite 项目内使用 Echarts 5 绘制中国地图,标记分布点!之前没有接触过 Echarts 的,可以先去官方示例看看,里面图形特别齐全。但是官方文档看着费劲的,太多了根本记不住,所以自己做个总结,下次就可以直接使用了,不用做重复无用功。 1、下载并引入

    2024年02月04日
    浏览(53)
  • SVG实现中国地图

    1.SVG是什么? svg 是Scalable Vector Graphics的缩写,指可伸缩矢量图形,可以用于绘制复杂不规则的控件。 svg绘制原理,就是利用了Path绘制图形。 1)svg利用xml定义图形。在xml中就包晗了绘制Path所需的数据。 2)加载xml中的PathData,转换成Path对象。 3)利用Canvas,把Path绘制在屏幕

    2024年02月04日
    浏览(40)
  • 基于Vue3 + ts + echarts(版本5.X)实现中国地图下钻、地图打点、地图热力图功能

    写在前面: 实现效果图   1.比较重要的部分用 红字 标出  2.安装echats:         3.由于echarts5版本的已经没有自带地图数据了,所以地图数据需要到专门的GEO数据网站中下载。这里提供一个阿里的下载地址:DataV.GeoAtlas地理小工具系列 对于这个工具网站,有一个重点需要说一

    2024年02月09日
    浏览(50)
  • antv/l7地图,鼠标滚动,页面正常滑动-- 我们忽略的deltaY

    背景 在官网项目中,需要使用一个地图,展示产品的分布区域及数量。希望的交互是,鼠标放上标点,tooltip展示地点和数量等信息。鼠标滚动,则页面随着滚动。但是鼠标事件是被地图代理了的,鼠标滚动意味着地图的缩放。 问题解决 我们首先想到的就是关闭地图的缩放

    2024年02月14日
    浏览(38)
  • vue项目中使用echarts和china.js实现中国地图

    在echarts最新的5.4.0版本中,已不能直接引用china.js来绘制中国地图,需要我们自己下载china.js包 在网上查找资料,大部分是在index.html文件中直接引入echarts和china.js文件,但我使用这种方法在vue项目中引入失败,目前尝试可行的方法是把包下载到node_modules的echarts包里面,文件和

    2024年02月13日
    浏览(40)
  • Echarts中国地图与世界地图实战

    Echarts中中国地图与世界地图实战,完整代码。 其中 china.js 与 world.js 两个文件已通过CDN的方法给出,而 echarts.js 大家可以自行去官网下载。 echarts.js是百度团队推出的一款用于图表可视化的插件,用于以图表的形式展现数据,功能强大,上手简单。 版本区别: 1.完全版:ec

    2024年02月03日
    浏览(91)
  • Python 地图篇 - 使用pyecharts绘制世界地图、中国地图、省级地图、市级地图实例详解

    [ 系列文章篇 ] 2022 见证中国崛起从 Python 绘制中国地图开始:使用 pyecharts 最新版本绘制中国地图实例详解,个性化地图定制及常用参数解析 [ 专栏推荐 ] Python 短视频自动化发布,包含抖音、快手、 bilibili 、小红书、微视、好看视频、西瓜视频、视频号等 10 余种平台 先给大

    2024年02月03日
    浏览(47)
  • Python绘制中国地图

     1. 导入库 2. 导入数据 3. 南海九段线部分数据预处理 开始绘图之前需进行数据选择,即中国区域的数据,特别是绘制南海小地图的更需要,可避免一些问题(小地图上方出现完整地图) 4. 定义掩膜方法,从全球的nc数据中,裁出中国地图部分的数据(根据shp文件裁剪nc数据)

    2024年02月06日
    浏览(43)
  • 大屏echarts示例------中国地图

    最近做了几个大屏,有很多echarts图表,挑重要的记录一下: 1. 中国地图 首先要找一个json文件,包含中国地区内所有地方的经纬度和名称等,初始化地图的时候需要 这里的city就是我的json文件。在上方引入即可 这里我把它放在和大屏index同目录下了,注意引入时的路径 然后

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包