[mars3d] 学习

news2024/12/29 8:59:36

今天整体说下mars3d,集成问题之后在说,先说下概念性的东西;

一、设置地球的参数

下载他们的示例,如果不是特别的要求,可以直接使用他们的 confign 进行加载;

如果有什么特别的设置的,可以通过 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 进行一些简单的设置;像是深度检测,加载昼夜区域,是否显示太阳,月亮,显示底图等等,更多的就需要查看 Mars3D三维可视化平台 | 火星科技 api 文档了,

二、底图的加载

目前主要的类型有下面这几种

基本都是通过第三方服务,在mars3d中进行加载的;这种的话需要自己对需要发布的第三方服务有点了解;

对于mars3d来说,就是gis本身的瓦片机制和请求机制,单纯客户端,改不了什么大的东西;

不过可以去他们的群里问问,说不定能解决;

三、矢量图层

必须的一个图层,要想添加各种矢量对象都得先添加矢量图层;

矢量对象是不能直接在加载在map上,需要挂在图层上;

const graphicLayer = new mars3d.layer.GraphicLayer({id:"graphicLayer"})
map.addLayer(graphicLayer)

 矢量对象添加在map上,才能通过id、name等参数去获取,

map.getLayerById("graphicLayer")

// 这个可以获取到confign内设置的layer
map.getLayer("graphicLayer","id")

map.getLayerByAttr("graphicLayer","id")

添加矢量对象到图层上;

一些用于展示的数据都可以放到attr里面,之后的popup,或者是其他地方使用的时候就直接拿到数据;

获取矢量对象也是和在map中获取图层是差不多的方法

const graphic = new mars3d.graphic.PointEntity({
    position: [116.244399, 30.920459, 573.6],
    style: {
      color: "#ff0000",
      pixelSize: 10,
      outlineColor: "#ffffff",
      outlineWidth: 2,
      label: {
        text: "我是原始点",
        font_size: 18,
        color: "#ffffff",
        pixelOffsetY: -10,
        distanceDisplayCondition: true,
        distanceDisplayCondition_far: 500000,
        distanceDisplayCondition_near: 0
      }
    },
    attr: { remark: "示例1" }
  })
  graphicLayer.addGraphic(graphic)

 现在讨论一些添加矢量对象会遇到的业务要求

1、当前效果是移动地图时,会飘来飘去

这是因为没有贴地导致的,或许在地下,或许在空中,都会导致这种问题;

要解决的话,也很简单,使用 clampToGround :true, 进行设置即可;

但是 clampToGround 这个参数性能不是很好,尤其是很多个对象时,会导致页面卡顿;

那么可以在最初的时候计算好高度值,把值传给后端,让他改!

点使用 -  PointUtil - Mars3D API文档 去计算贴地高度值;

线使用 - PolyUtil - Mars3D API文档 去计算贴地高度值。

2、绑定点击事件

这是对图层绑定单机事件,那么在该图层下的所有矢量对象都会被绑定单机事件;

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

也可以对单个矢量对象进行绑定

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

值得注意的是,不能多次执行该方法,否则会被绑定多次的哦;

解绑的话,使用 off 即可;但值得注意的是,使用 off 解绑,一定要将方法给提出来,单独解绑这一个方法,否则,这个图层的所有该类型的绑定将全部解绑

graphicLayer.on(mars3d.EventType.click, layer_onClick)


graphicLayer.off(mars3d.EventType.click, layer_onClick)


function layer_onClick(event){
    const graphic = event.graphic
    console.log("监听graphicLayer,单击了矢量对象",graphic )
}

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

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

相关文章

Chapter6-可靠性优先的使用场景

6.1 顺序消息 顺序消息是指消息的消费顺序和产生顺序相同,在有些业务逻辑下,必须保证顺序 。 比如订单的生成 、付款、发货,这 3 个消息必须按顺序处理才行。顺序消息分为全局顺序消息和部分顺序消息,全局顺序消息指某个 Topic 下…

centos7.6部署ELK集群(一)之elasticsearch7.7.0集群部署

32.3. 部署es7.7.0 32.3.1. 下载es(各节点都做) wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz 32.3.2. 解压至安装目录(各节点都做) tar -xvf elasticsearch-7.7.0-li…

你的宝典,软件测试项目实战,金融项目测试点详全(超详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试要点 软件测试…

Locust 压力测试helloworld

1. 什么是Locust Locust 是一种易于使用、可直接使用pyhton编写脚本运行且可扩展的性能测试工具。 2. 安装Locust Python 3.9.16 pip install locust2.15.1 3. 一个简单的示例 3.1. 编写下面代码,文件命名为locustfile_test.py from locust import HttpUser,…

Python实现哈里斯鹰优化算法(HHO)优化卷积神经网络回归模型(CNN回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

Linux多线程-3

在之前的两篇博客当中,我们讲述了线程概念、线程控制和线程安全三部分内容。紧随其后本篇博客内容:我们首先来讲述生产者和消费者模型,来了解一种多线程的设计模式,然后在此基础上讲述上一篇博客剩余的内容:信号量的相…

跨平台开发 uni-app

目录: 1 邂逅跨平台开发 2 初体验uni-app 3 uni-app全局文件 4 内置组件和样式 5 扩展组件 uni-ui 6 跨端兼容实现 7 路由和生命周期 8、扩展组件 uni-ui 9、跨端兼容实现 10、页面路由和传参 11、其它常用API 12、自定义组件 13、状态管理Pinia 创建的…

归并排序的非递归实现

其实想法和递归实现的类似,只不过是通过其他变量分组,而不是mid,我们可以将数组先分为两 两一组,再合并成四四一组,以此类推,最后一次合并排序后,得到的数组就为有序数组了,所以 递…

Docker容器数据卷详解

文章目录 一、数据卷使用二、数据卷容器三、数据卷备份与恢复 数据卷特点: 数据卷会一直在,即使容器销毁可以对数据卷内容直接修改 一、数据卷使用 1、为容器添加数据卷 docker run -itd --name nginx -v /data:/usr/share/nginx/html qinzt/nginx:v1…

15、虚拟内存LLDB高级调试

一、虚拟内存 早期的操作系统 早期的操作系统,并没有虚拟内存的概念.系统由进程直接访问内存中的物理地址,这种方式存在严重的安全隐患.内存中的不同进程,可以计算出他们的物理地址,可以跨进程访问,可以随意进行数据的篡改.早期的程序也比较小,在运行时,会将整个程序全部加载到…

SQL——关于bjpowernode.sql的33道经典例题之18-33

目录 18 列出所有“CLERK”&#xff08;办事员&#xff09;的姓名和部门名称、部门人数 19 列出最低薪水大于1500的各种工作和此工作的全部雇员人数 20 列出在部门“SALES”<销售部>工作的员工姓名 21 列出薪资高于公司平均薪资的所有员工&#xff0c;所在部门、上级…

windows python 安装 mathutils库出现问题解决

项目场景&#xff1a; 在windows11上python安装mathutils库时报错。分如下两种情况安装&#xff0c;都报的是同样的错误&#xff1a; &#xff08;1&#xff09;直接在使用pip安装 python -m pip install mathutils # 或者 pip install mathutils &#xff08;2&#xff09;…

2023年第二届服务机器人国际会议(ICoSR 2023) | IEEE-CPS独立出版

会议简介 Brief Introduction 2023年第二届服务机器人国际会议(ICoSR 2023) 会议时间&#xff1a;2023年7月21日-23日 召开地点&#xff1a;中国上海 大会官网&#xff1a;www.iwosr.org ICoSR 2023将围绕“服务机器人”的最新研究领域而展开&#xff0c;为研究人员、工程师、专…

版本升级|Co-Project V3.1智能项目管理平台——新增三大调整板块 提高自动估算精准度

大家好&#xff0c;CoCode开发云旗下Co-Project V3.1智能项目管理平台正式发布&#xff0c;需求分析工具全新升级&#xff0c;新增功能点调整类型、工作量调整因子和费用调整因子三大板块&#xff0c;全面提高自动估算项目精准度。 一、调整功能点数 要提高项目估算精准度&…

stable diffusion webui 使用

参考各文章以及个人操作后的记录文章&#xff0c;也希望能帮助有需要的人~ 首先进去大概是这样的&#xff0c;介绍下下图几个区域&#xff08;主要是文生图&#xff09;。 一、模型区域 Stable Diffusion checkpoint下拉选择框是用来切换ckpt模型&#xff0c;不清楚的可以看…

快速入门 Python 内置模块 argparse

目录 一、argparse 简介二、The add_argument() method 一、argparse 简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块&#xff0c;argparse 模块可以让人轻松编写用户友好的命令行接口&#xff0c;能够帮助程序员为模型定义参数。 使用 argparse 模块的四个…

C++string类详解

C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&#xff0c;稍不留神可…

【0基础学爬虫】爬虫基础之自动化工具 Selenium 的使用

大数据时代&#xff0c;各行各业对数据采集的需求日益增多&#xff0c;网络爬虫的运用也更为广泛&#xff0c;越来越多的人开始学习网络爬虫这项技术&#xff0c;K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章&#xff0c;为实现从易到难全方位覆盖&#xff0c;特设【0基础学…

巨型AI模型时代已结束,我们没搞GPT-5,搞的是GPT-4.99999

文章目录 1、ChatGPT 研发热潮2、GPT5 被叫停“AI危险竞赛”3、 叫停是无法被阻止的4 、 不急于训练GPT-5 1、ChatGPT 研发热潮 自ChatGPT重新吹响人工智能革命的号角后&#xff0c;“百模大战”也已然在太平洋两岸同时拉开了帷幕。 近几个月来&#xff0c;OpenAI ChatGPT 的…

记frp内网穿透配置

这两天由于想给客户看一下我们的系统&#xff0c;于是想到用内网穿透&#xff0c;但是怎么办呢&#xff0c;没有用过呀&#xff0c;于是各处找资料&#xff0c;但是搞完以后已经不记得参考了那些文档了&#xff0c;对不起各位大神&#xff0c;就只能写出过程和要被自己蠢死的错…