cesium 使用异步函数 getHeightAtPoint,获取指定经纬度点的地形高度。

news2024/9/20 19:21:39

这个函数使用 CesiumJS 库的 sampleTerrain 方法来获取地形数据。下面是代码的详细解释:

async getHeightAtPoint(LngLat) {
  // 将经纬度转为 Cartographic 对象
  let cartographics = [Cesium.Cartographic.fromDegrees(LngLat[0], LngLat[1])];
  // console.log("getHeightAtPoint--cartographics", cartographics);
  
  try {
    // 使用 sampleTerrain 方法获取地形高度
    const updatedPositions = await Cesium.sampleTerrain(this.viewer.scene.terrainProvider, 15, cartographics, true);
    // console.log('updatedPositions23232', updatedPositions);
    
    // 提取并返回高度
    let height = updatedPositions[0].height;
    return height;
  } catch (error) {
    // 捕获并处理可能发生的错误
    console.error("Error fetching terrain height:", error);
  }
}

 

详细解释

  1. async:

    • getHeightAtPoint 是一个异步函数,这意味着它可以使用 await 关键字来等待 Promise 完成,从而避免使用回调函数。
  2. LngLat 参数:

    • 该函数接收一个数组 LngLat,其中包含经度和纬度。
  3. Cesium.Cartographic.fromDegrees:

    • 将经度和纬度转换为 Cesium 中使用的 Cartographic 对象。Cartographic 是 Cesium 中的一个数据类型,用于表示地球上的位置。
  4. Cesium.sampleTerrain:

    • 该方法用于从地形提供者获取地形高度。它的参数包括:
      • this.viewer.scene.terrainProvider: 用于获取地形数据的地形提供者。
      • 15: 采样的分辨率级别,较小的数字表示较高的分辨率。
      • cartographics: 包含要采样的位置的数组。
      • true: 这个参数表示是否返回更新后的高程数据。
  5. 错误处理:

    • 使用 try...catch 语句来捕获和处理在获取地形高度时可能出现的错误。
  6. 返回值:

    • 函数提取并返回第一个位置的高度值 (height),如果采样成功的话。

注意事项

  • 错误处理: 在 catch 块中,虽然捕获了错误,但没有处理它。通常,你应该在 catch 块中记录或处理错误信息,以便调试或通知用户。

  • 异步操作: 确保 this.viewer 已正确初始化,并且 this.viewer.scene.terrainProvider 可以提供有效的地形数据。

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

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

相关文章

数组与贪心算法——605、121、122、561、455、575(5简1中)

605. 种花问题(简单) 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛&#xf…

千行百业用AI大模型,为什么火山引擎是聚处?

“角儿是座儿叫出来的”,这句话不仅适合相声艺术,也很符合AI大模型商业化的现状。 今年以来,“大模型落地”成为AI和云产业的高频词。避免“叫好不叫座”,让AI大模型更快地融入行业场景之中,被各行各业真正用起来&…

CSS之我不会

一、选择器 作用&#xff1a;选择页面上的某一个后者某一类元素 基本选择器 1.标签选择器 格式&#xff1a;标签{} <h1>666</h1><style>h1{css语法} </style>2.类选择器 格式&#xff1a;.类名{} <h1 class"name">666</h1>…

uniapp组件知识记录

style标签的lang <template><view class"content"><h1 class"test"><span class"test1">我</span></h1>是谁</view> </template><style lang"scss">.content {// content中允…

基于Java+SpringBoot+Vue+MySQL的高校物品捐赠管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的高校物品捐赠管理系统【附源码文档】、…

数据结构代码集训day17(适合考研、自学、期末和专升本)

习题来自B站up&#xff1a;白话拆解数据结构 今日习题如下&#xff1a; 1、写出二叉树的前、中、后序遍历 2、写出二叉树的非递归前序和中序遍历 二叉树有多种存储结构&#xff1a;双亲存储法、孩子兄弟链存储结构&#xff0c;二叉链表存储结构等&#xff0c;一般我们写代码题…

如何实现一个定时任务?六种策略可实现

目录标题 1、自定义单线程2、JDK ScheduledExecutorService3、 Spring Task4、Quartz5、Elastic-job6、xxl-job最后&#xff1a;思考更上一层1. 高性能2. 高并发3. 高可用 设计方案 1、自定义单线程 上图中&#xff0c;我们启动一个线程&#xff0c;该线程无限循环执行&#xf…

STM32高级定时器生成互补PWM的原理与代码实现

文章目录 前言一 CubeMx配置1.1 TIM1 Mode and Configuration1.2 Paramter Settings 二 程序代码三 仿真分析总结 前言 互补 PWM&#xff08;Complementary PWM&#xff09;是指一对逻辑状态互为反相的 PWM&#xff08;脉冲宽度调制&#xff09;信号。这种信号配置常见于电机控…

SQL进阶技巧:如何利用SQL解决趣味赛马问题?| 非等值关联匹配问题

目录 0 问题描述 1 数据准备 2 问题分析 方法一:先分后合思想 方法2:非等值关联匹配 3 小结 0 问题描述 有一张赛马记录表,如下所示: create table RacingResults ( trace_id char(3) not null,race_date date not null, race_nbr int not null,win_name char(30) n…

探索 Redis Set:命令、编码与应用实践

set 类型 一 . 常见命令1.1 sadd、smembers1.2 sismember1.3 spop、srandmember1.4 smove1.5 srem1.6 集合间操作交集 : sinter、sinterstore并集 : sunion、sunionstore差集 : sdiff、sdiffstore 小结 二 . 内部编码6.3 应用场景6.3.1 使用 Set 来保存用户的标签6.3.2 使用 Se…

android kotlin基础复习 enum

1、kotlin中&#xff0c;关键字enum来定义枚举类型。枚举类型可以包含多个枚举常量&#xff0c;并且每个枚举常量可以有自己的属性和方法。 2、测试代码&#xff1a; enum class Color{RED,YELLOW,BLACK,GOLD,BLUE,GREEN,WHITE }inline fun <reified T : Enum<T>>…

Qt工程实践_06_Qt MSVC2O17编译器下的程序添加VS2017生成的动态链接库方法

文章目录 1. 利用VS2017生成动态链接库1.1 创建C++空项目1.2 添加.h和.cpp内容:添加了一个减法运算1.3 设置动态链接库目标计算机类型1.4 设置项目属性为动态库1.5 生成项目,复制需要的文件2. Qt程序使用VS2017生成的动态链接库方法2.1 创建Widget程序2.2 链接动态库文件2.2.…

蚂蚁SEO|AI养站程序是什么|蚂蚁蜘蛛池

《AI 养站程序&#xff1a;开启网站运营新未来》 在当今数字化时代&#xff0c;网站运营的重要性日益凸显。而 AI 养站程序的出现&#xff0c;为网站运营者带来了全新的机遇与挑战。 一、什么是 AI 养站程序 AI 养站程序是利用人工智能技术&#xff0c;对网站进行自动化管理和优…

MacBook air pro验机流程

由于苹果电脑价格相对较高&#xff0c;用户在网上购置之后&#xff0c;最好对机器要进行一下验机&#xff0c;以确保自己所购置的机器为原厂正品一手机。此外&#xff0c;在网上购置时&#xff0c;注意开相应的发票&#xff0c;方便后续的保修和换机等其他流程。 本文主要是介绍…

中小学生学籍照片(390×480蓝底)手机拍照制作流程说明

近期各地中小学陆续开学&#xff0c;幼升小及小升初一年级新生一般要在十月份之前完成学籍档案采集&#xff0c;其中就包括了新生学籍证件照的采集&#xff08;即学籍照片&#xff09;&#xff0c;部分中部省份使用的学籍照片像素尺寸为390&#xff08;宽&#xff09;480&#…

[C#学习笔记]注释

官方文档&#xff1a;Documentation comments - C# language specification | Microsoft Learn 一、常用标记总结 1.1 将文本设置为代码风格的字体&#xff1a;<c> 1.2 源代码或程序输出:<code> 1.3 异常指示:<exception> 1.4 段落 <para> 1.5 换行&…

Vue+Element多套主题切换

Vue3.x Element Plus与Vue2.x Element ui多套主题的切换方案 demo地址 VueElement更换主题: Vue Element项目&#xff0c;更换几套主题的方案 思路很简单&#xff0c;就是写好每套样式&#xff0c;写个切换功能&#xff0c;切换主题即可 具体实现方案&#xff1a; 准备多…

物联网技术推动灌区智能化管理

物联网技术&#xff0c;作为信息技术革命的重要组成部分&#xff0c;正深刻地改变着传统行业的运作模式&#xff0c;其中在农业灌溉领域的应用尤为显著&#xff0c;为灌区的智能化管理开辟了新径。这一技术通过将传感器、智能网关、大数据分析与云平台紧密融合&#xff0c;实现…

What is Node.JS and its Pros and Cons

What is Node.JS and its Pros and Cons JavaScript is a client-side development tool. Node.js is a server-side development tool. And it’s only a runtime environment based on Chrome V8 so we don’t write some code in Node.js. Pros: JavaScript on a server …

TypeScript 在 Vue.js 中的应用指南

在前端开发中&#xff0c;TypeScript 和 Vue.js 的组合越来越受到青睐。TypeScript 的强类型系统和 Vue.js 的组件化架构相得益彰&#xff0c;可以帮助你编写更可靠和易维护的代码。如果你已经掌握了 TypeScript 的基本语法&#xff0c;但不太确定怎么将它与 Vue.js 配合使用&a…