当前位置: 首页 > news >正文

【CesiumJS入门】(9)获取地表两点的距离及中心点——EllipsoidGeodesic

前言

一般情况下,我们可以直接通过Cesium.Cartesian3.distance(left, right)来获取两点的距离,但获取到的是两点的直线距离

const start = new Cesium.Cartesian3.fromDegrees(113,23);
const end = new Cesium.Cartesian3.fromDegrees(113,24);const distance = Cesium.Cartesian3.distance(start,end); // 两点直线距离,单位:米

今天,我们将利用EllipsoidGeodesic这个类,来实现:

  1. 计算地球表面上两点之间的测地线距离
  2. 计算两个点之间指定距离上的插值点
  3. 获取线上指定位置的经纬度坐标,如:获取中点

正文

EllipsoidGeodesic(椭球测地线)是一种沿着地球表面的曲线,沿着该曲线移动最短距离,即大圆弧。而不是直接在三维空间中画线连接两个点,因为地球是一个椭球体,不能简单地将地球视为平面。
在这里插入图片描述

创建一个实例:

通过传入起始点和终点的经纬度坐标来创建一个 EllipsoidGeodesic 的实例:

const start = Cesium.Cartographic.fromDegrees(lon1, lat1);
const end = Cesium.Cartographic.fromDegrees(lon2, lat2);
const geodesic = new Cesium.EllipsoidGeodesic(start, end);

计算两点之间的距离:

可以使用 surfaceDistance 方法来计算地球表面上两个点之间的测地线距离(单位为米)。例如:

const distance = geodesic.surfaceDistance;

计算指定距离上的点:

可以使用 interpolateUsingSurfaceDistance 方法来计算两个点之间指定距离上的插值点。例如:

const distance = 1000; // 距离为1000米
const interpolatedPoint = geodesic.interpolateUsingSurfaceDistance(distance);

获取测地线上的点坐标:

可以使用 interpolateUsingFraction 方法来获取测地线上指定比例位置处的点的经纬度坐标。比例参数介于0到1之间,表示从起点到终点沿着测地线的距离比例。例如:

const fraction = 0.5; // 获取测地线中点的坐标
const point = geodesic.interpolateUsingFraction(fraction);

设置测地线的起点和终点

点的格式要求为:Cartographic

const newGeodesic = geodesic.setEndPoints(start, end);
http://www.lryc.cn/news/139247.html

相关文章:

  • OLED透明屏介绍:领先科技的革命性创新
  • ESXI补丁更新
  • 【每日易题】数组下标的逆天用法——你见过把数组存储的值当作数组下标来解题的吗?
  • mysql基本操作
  • vue组件的使用
  • Axure设计之日期选择器(年月选择)
  • CAD泰森多边形框架3D插件
  • Django的render()函数的三个主要参数详解,特别是第三个字典类型的参数context
  • 统计不同字段的值域
  • js this 指的是什么
  • 用pytorch实现Resnet
  • C++类成员的访问权限以及类的封装
  • Linux 多线程解决客户端与服务器端通信
  • FMX的TListBox单选列表框
  • prompt工程(持续更新ing...)
  • win11 docker-desktop安装记录
  • opencv特征提取、梯度计算
  • AI绘画工具MJ新功能有点东西,小白也能轻松一键换装
  • java springboot sql防注入的6种方式
  • 深度学习实战49-基于卷积神经网络和注意力机制的汽车品牌与型号分类识别的应用
  • Open3D(C++) 可视化(3)——批量动态可视化点云
  • opencv 文档识别+UI界面识别系统
  • 下|税收大数据应用研究
  • 数据库连接池druid 的jar包官网下载-最新版下载
  • 2023河南萌新联赛第(六)场:河南理工大学 C - 旅游
  • Java | IDEA中Netty运行多个client的方法
  • 【蓝桥杯】 [蓝桥杯 2015 省 A] 饮料换购
  • 操作系统-笔记-第三章-内存管理
  • 详解单体架构和微服务(概念,优缺点和区别)
  • 储能运行约束的Matlab建模方法