关于Mars3d的入门

news2024/11/15 11:33:37

关于Mars3d的入门

  • 一. 创建地球,加载瓦片图层
  • 二 矢量图层
    • 2.1 常用矢量图层
      • 2.1.1 GraphicLayer
      • 2.1.2 GeoJsonLayer
    • 2.2 矢量图层的点击事件
  • 三 矢量数据
  • 四 事件机制

一. 创建地球,加载瓦片图层

      // 1. 创建地球
      let map = new mars3d.Map("mars3dContainer", mapOptions);


	// 2. 加载瓦片
	layers: [
    {
      name: "test",
      type: "image",
      url: "//data.mars3d.cn/test.png",
      rectangle: { xmin: 127.259691, xmax: 137.267778, ymin: 34.834432, ymax: 36.84387 },
      show: true
    }
   ]

加载瓦片的方式有两种:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二 矢量图层

矢量图层与矢量数据的用法

  1. 定义矢量数据
  2. 把矢量数据放到矢量图层
  3. 把矢量图层放到地图上

在这里插入图片描述

2.1 常用矢量图层

2.1.1 GraphicLayer

//创建矢量数据图层
let graphicLayer = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer)

//加载数据到矢量图层
let graphic = new mars3d.graphic.LabelEntity({
  position: new mars3d.LngLatPoint(116.1, 31.0, 1000),
  style: {
    text: 'Mars3D三维可视化平台',
    font_size: 25,
    color: '#003da6',
  },
})
graphicLayer.addGraphic(graphic)

2.1.2 GeoJsonLayer

通过json的格式创建图层,高效方便

let geoJsonLayer = new mars3d.layer.GeoJsonLayer({
  name: '省界线',
  url: 'http://data.mars3d.cn/file/geojson/sheng-line.json',
  symbol: {//可以通过配置symbol参数来指定渲染的矢量数据类型和样式。
    type:"polyline",
    styleOptions: {
      color: '#ffffff',
      opacity: 0.8,
      width: 2
    },
  },
})
map.addLayer(geoJsonLayer)

2.2 矢量图层的点击事件

 graphicEllipseLayer.on(mars3d.EventType.click, function (event) {
        console.log("监听layer,单击了矢量对象", event)
      })

      // 绑定layer标绘相关事件监听(可以自行加相关代码实现业务需求,此处主要做示例)
      graphicEllipseLayer.on(mars3d.EventType.drawStart, function (e) {
        console.log("开始绘制", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.drawAddPoint, function (e) {
        console.log("绘制过程中增加了点", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.drawRemovePoint, function (e) {
        console.log("绘制过程中删除了点", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.drawCreated, function (e) {
        console.log("创建完成", e)

        // graphicLayer.stopDraw()
        // graphicLayer.startDraw(mars3d.Util.clone(e.graphic.options)) // 连续标绘时,可以代替isContinued
      })

      graphicEllipseLayer.on(mars3d.EventType.editStart, function (e) {
        console.log("开始编辑", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.editMovePoint,  (e)=> {
        console.log("编辑修改了点", e.graphic.editing._graphic.options.style.radius)
        this.$emit("mixinsRadiusChangeMth",e.graphic.editing._graphic.options.style.radius)
        this.mapScan(e.graphic);
      })
      graphicEllipseLayer.on(mars3d.EventType.editAddPoint, function (e) {
        console.log("编辑新增了点", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.editRemovePoint, function (e) {
        console.log("编辑删除了点", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.editStop, function (e) {
        console.log("停止编辑", e)
      })
      graphicEllipseLayer.on(mars3d.EventType.removeGraphic, function (e) {
        console.log("删除了对象", e)
      })

三 矢量数据

在这里插入图片描述

在这里插入图片描述

剩余的矢量对象

ParticleSystem粒子对象 —》 粒子效果

漫游路线对象 —》 展示对象按照一定轨迹移动

视频融合对象 —》投射视频物体表面

四 事件机制

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

常用的方法

// 获取图层 在清除图层
const layer = map.getLayerById(2021)
 
// 移除图层
map.removeLayer(layer )
 
// 隐藏图层
layer.show = false
 
// 显示图层
layer.show = true


//通过id获取图层
const layer = map.getLayerById(2021) 
const layer = map.getLayer("id",2021) 

//获取所有的图层
const layers =map.getLayers({

basemaps:false // 不包含basemps中配置的所有图层

layers:false // 不包含layers中配置的所有图层

})

//判断图层是否添加过
const isHaveLayer = map.hasLayer(2021) // 返回boolean


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FOC算法

如下图所示的,是FOC算法的整体流程图,下面图中最重要的部分就是SVPWM和3相全桥电路,和送给SVPWM进行运算,运算之后的结果为三个相差120的马鞍波,然后将这三相马鞍波作为控制全桥MOS开关的三个PWM波的占空比&#xff0c…

Vortex GPGPU的硬件设计和代码结构分析

文章目录 前言一、GPGPU是什么?1.1 GPU和GPGPU之间的差异1.2 GPU和CPU之间的集成方式1.3 GPU包含什么(列举和VMIPS向量体系结构的差异) 二、Vortex GPGPU是什么?2.1 Vortex GPGPU的技术边界和验证环境2.2 Vortex GPGPU的指令集设计…

Kubernetes基于helm部署jenkins

Kubernetes基于helm安装jenkins jenkins支持war包、docker镜像、系统安装包、helm安装等。在Kubernetes上使用Helm安装Jenkins可以简化安装和管理Jenkins的过程。同时借助Kubernetes,jenkins可以实现工作节点的动态调用伸缩,更好的提高资源利用率。通过…

C++ | Leetcode C++题解之第223题矩形面积

题目: 题解: class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

使用void 0替代undefined

在很多大厂的规范里面,有这么一条规定:不让直接使用undefined关键字,而应该使用void 0来替代undefined。 一、void 0是什么意思? void是一个关键字,他后面跟的是一个表达式,不管这个表达式算的是啥&#…

you should not run configure as root, 升级tar出错

为了能用 tar 支持 zstd 的压/解缩包命令,需要升级 tar 到 1.3 以上,下面是下载和编译、安装命令: wget https://mirrors.aliyun.com/gnu/tar/tar-1.32.tar.bz2 tar -jxvf tar-1.32.tar.bz2 cd tar-1.32 ./configure make make install但在执…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

PyJWT,一个基于JSON的轻量级安全通信方式的python库

目录 什么是JWT? JWT的构成 PyJWT库简介 安装PyJWT 生成JWT 验证JWT 使用PyJWT的高级功能 自定义Claims 错误处理 结语 什么是JWT? 在介绍PyJWT这个Python库之前,我们首先需要了解什么是JWT。JWT,全称JSON Web Token&am…

LabVIEW开发商业软件的多角度分析与注意事项

在使用LabVIEW开发商业软件时,有许多方面需要考虑和注意,包括项目管理、架构设计、性能优化、用户体验、安全性、维护与支持等。以下是从多个角度详细分析在LabVIEW中开发商业软件需要注意的事项。 项目管理 需求分析:确保深入了解客户需求&a…

如何在vue3中使用scss

一 要使用scss首先需要下载相关的包 可以在终端使用下面的命令下载相关包 npm install -D sass 二 在src文件下新建一个文件夹叫做styles 在文件夹下创建三个文件 index.scss主要用来引用其他文件 reset.scss用来清除默认的样式 variable.scss用来配置全局属性 三 需要在v…

生物素结合金纳米粒子(Bt@Au-NPs ) biotin-conjugated Au-NPs

一、定义与特点 定义:生物素结合金纳米粒子,简称BtAu-NPs或biotin-conjugated Au-NPs,是指通过特定的化学反应或物理方法将生物素修饰到金纳米粒子表面,形成稳定的纳米复合材料。 特点: 高稳定性:生物素的修…

上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口&am…

2024年信息素养大赛图形化编程小低组复赛真题-附答案 6547网

2024年全国青少年信息素养大赛图形化编程小低组复赛真题 题目总数:6 总分数:100 第1部分 第 1 题 问答题 【编程实现】点击小绿旗,实现将鱼的所有造型印到舞台区 【具体要求】 1. 将鱼显示出来 全部擦除所有内容 2. 将鱼的造型设…

vue学习day03-指令修饰符、v-bind对于样式控制的增强、v-model应用于其他表单元素

7、指令修饰符 (1)概念: 通过“.”指明一些指令后缀,不同后缀封装了不同的处理操作->简化代码 (2)按键修饰符 keyup.enter->键盘回车监听 (3)v-model修饰符 v-model.tri…

报修小程序论文(设计)开题报告

一、课题的背景和意义 近些年来,随着移动互联网巅峰时期的来临,互联网产业逐渐趋于“小、轻、微”的方向发展,符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中,被誉为“运行着程序的网站”之名的微信小程序…

Linux学习笔记(二)账户和组

一、基本概念 用 户:用户id,被称为UID 基本组:账户id,被称为GID。用户只能加一个基本组。 0代表超级管理员,root账号。 附加组:用户能加多个基本组。 二、添加账户和组 创建用户名tom,失效…

千古雄文《渔樵问对》原文、译文、解析

邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义 【邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义】 邵雍(1011年1月21日-1077年7月27日,宋真宗大中祥符四年十二月二十五日戌时生至神宗熙宁十…

ctfshow web入门 nodejs web334--web337

web334 有个文件下载之后改后缀为zip加压就可以得到两个文件 一个文件类似于index.php 还有一个就是登录密码登录成功就有flag username:ctfshow password:123456因为 return name!CTFSHOW && item.username name.toUpperCase() && item.password passwor…

Python 处理Excel 文件, openpyxl 库的使用:

下载&#xff1a; pip install openpyxl 基本使用&#xff1a; 新建一个Excel 工作簿&#xff1a; 使用openpyxl 需要先导入一个Workbook 类&#xff0c; 使用它可以创建一个Workbook<工作簿>对象&#xff0c; 也就是创建一个Excel表文件&#xff0c; web.active 可用来…

电动卡丁车语音芯片方案选型:让驾驶体验更智能、更安全

在追求速度与激情的电动卡丁车领域&#xff0c;每一次升级都意味着更加极致的驾驶体验。而今天&#xff0c;我们要介绍的&#xff0c;正是一款能够显著提升电动卡丁车智能化与安全性的语音芯片方案——为您的爱车增添一份独特的魅力与安全保障。 智能化升级&#xff0c;从“听…