vue3 使用antv地图:地球飞线、地图打点

2024-01-02 11:52

本文主要是介绍vue3 使用antv地图:地球飞线、地图打点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

const initEarth = () => {earthScene = new Scene({id: "earth",map: new Earth({center: [154.113164, 25.570667],zoom: 3,// pitch: 50}),});// 地球模式下背景色默认为 #000 通过 setBgColor 方法我们可以设置可视化层的背景色earthScene.setBgColor("");const earthlayer = new EarthLayer().source(earthPic, {parser: {type: "image",},}).color("#2E8AE6").shape("fill").style({opacity: 1.0,radius: 40,globalOptions: {ambientRatio: 0.6, // 环境光diffuseRatio: 0.4, // 漫反射specularRatio: 0.1, // 高光反射},}).animate(true);const atomLayer = new EarthLayer().color("#2E8AE6").shape("atomSphere");const bloomLayer = new EarthLayer().color("#fff").shape("bloomSphere").style({opacity: 0.7,});earthScene.on("loaded", () => {earthScene.addLayer(earthlayer);earthScene.addLayer(atomLayer);earthScene.addLayer(bloomLayer);Promise.all([fetch(// earthJsonwindow.location.origin + "/json/earthJson.json").then((d) => d.json()),// fetch(// 	'/public/assets/antvMap/dot.json'// ).then(d => d.text()),]).then(function onLoad([flyline, dot]) {const flydata = eval(flyline);const dotData = dot;// const dotPoint = new PointLayer({ zIndex: 999999 })// 	.source(dotData, {// 		// parser: {// 		// 	type: 'json',// 		// 	x: 'lng',// 		// 	y: 'lat'// 		// }// 	})// 	.shape('simple')// 	.color('#ffed11')// 	// .animate(true)// 	.size(940);// console.log(dotData,'---dotData');// dotData.forEach(i => {// 	const el = document.createElement("div");// 	el.innerHTML = `<img src='${locationGif}' width='100px' height='50px'/>`;// 	const marker = new Marker({// 		element: el// 	}).setLnglat({// 		lng: i.lng,// 		lat: i.lat// 	});// 	earthScene.addMarker(marker);// })console.log(flydata, "---flydata");const flyLine = new LineLayer({ blend: "normal" }).source(flydata, {parser: {type: "json",coordinates: "coord",},}).color("#fadd3a").shape("arc3d").size("volumes")// .active(true).animate({interval: 2,trailLength: 2,duration: 2,}).style({segmentNumber: 60,globalArcHeight: 10,});earthScene.addLayer(flyLine);// earthScene.addLayer(dotPoint);});// setTimeout(() => {// 	earthlayer.setEarthTime(4.0);// }, 500);});
};

构建dom实例

<div id="earth"></div>

页面打开时执行init方法,即可

地球

 <div id="mapChina"></div>
let chinaScene = null;
const initMap = () => {chinaScene = new Scene({id: "mapChina",map: new Map({style: "dark",center: [104.113164, 25.570667],zoom: 3.8,pitch: 50,}),});chinaScene.on("loaded", () => {let lineDown, lineUp, textLayer;fetch(window.location.origin + "/json/china.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 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-leftspacing: 2, // 字符间距padding: [1, 1], // 文本包围盒 padding [水平,垂直],影响碰撞检测结果,避免相邻文本靠的太近stroke: "#0ff", // 描边颜色strokeWidth: 0.2, // 描边宽度raisingHeight: 20000,textAllowOverlap: true,});chinaScene.addLayer(textLayer);lineUp = new LineLayer({ zIndex: 1 }).source(data).shape("line").color("#0DCCFF").size(1).style({raisingHeight: 20000,});chinaScene.addLayer(lineUp);return "";});fetch(window.location.origin + "/json/chinaNationalLayer.json").then((res) => res.json()).then((data) => {const nationalLayer = new PolygonLayer({}).source(data).size(20000).shape("extrude").color("#0DCCFF")// .active({// 	color: 'rgb(100,230,255)'// }).style({mapTexture: provinceImg, //如果想使用纹理贴图,shap必须为extrudeheightfixed: true,pickLight: true,raisingHeight: 1,opacity: 0.8,sourceColor: "#333", //抬高高度的颜色targetColor: "#fff",// sourceColor: "#333", //抬高高度的颜色});chinaScene.addLayer(nationalLayer);});fetch(window.location.origin + "/json/chinaFlyLine.json").then((res) => res.json()).then((data) => {const flyLine = new LineLayer({ blend: "normal", zIndex: 3 }).source(data, {parser: {type: "json",coordinates: "coord",},}).color("#fadd3a").shape("arc3d").size("volumes")// .active(true).animate({interval: 1,trailLength: 2,duration: 2,}).style({segmentNumber: 60,globalArcHeight: 30,});chinaScene.addLayer(flyLine);});fetch(window.location.origin + "/json/dot.json").then((res) => res.json()).then((data) => {data.forEach((i) => {const el = document.createElement("div");el.innerHTML = `<img src='${locationGif}' width='100px' height='50px'/>`;const marker = new Marker({element: el,}).setLnglat({lng: i.lng,lat: i.lat,});chinaScene.addMarker(marker);});// const dotPoint = new PointLayer()// 	.source(data, {// 		parser: {// 			type: 'json',// 			x: 'lng',// 			y: 'lat'// 		}// 	})// 	.shape('circle')// 	.color('#ffed11')// 	.animate(true)// 	.size(840);// 	chinaScene.addLayer(dotPoint);});});
};

这篇关于vue3 使用antv地图:地球飞线、地图打点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/562367

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面