先贴一段代码,是dvgis里的distance.js源码,dvgis是cesium的二次封装,可以参考参考:

 1import{Cesium}from'@dc-modules/namespace' 2import{Transform}from'@dc-modules/transform' 3
4exportdefault functiondistance(positions){ 5letdistance=0 6 if(positions&&Array.isArray(positions)){ 7 for(leti=0;i<positions.length-1;i++) {
8letc1=Transform.transformWGS84ToCartographic(positions[i]) 9letc2=Transform.transformWGS84ToCartographic(positions[i+1])
10letgeodesic=newCesium.EllipsoidGeodesic()11 geodesic.setEndPoints(c1, c2)
12lets= geodesic.surfaceDistance
13s=Math.sqrt(Math.pow(s,2)+Math.pow(c2.height-c1.height,2))
14distance+= s
15 }
16 }
17
18 returndistance.toFixed(3)
19 }

看这个文件名字,应该是计算两点间距离的,其中用到了EllipsoidGeodesic,也就是测地线。

测地线就是地球上两点间沿着椭球走的那条最短路径。

让我感到奇怪的是第13行代码

s = Math.sqrt(Math.pow(s, 2) + Math.pow(c2.height - c1.height, 2))

这样子更像是用勾股定理算长度。测地线明明是条曲线不知道为什么要平方。挺奇怪的。

 

举起

dvgis计算两点间距离的问题的更多相关文章

  1. YTU 2619: B 友元类-计算两点间距离

    2619: B 友元类-计算两点间距离 时间限制: 1 Sec  内存限制: 128 MB 提交: 469  解决: 252 题目描述 类Distance定义为类Point的友元类来实现计算两点之间距 ...

  2. c++语言的组合类的使用,用组合类的方法计算两点间距离。

    组合类的使用主要涉及到类的构造函数,类的复制构造函数. #include <iostream> #include<cmath> class Point{ public: Poi ...

  3. [MSSQL2008]Spatial Data in SQL Server 2008 - 根据经纬度计算两点间距离

    DECLARE @BJ GEOGRAPHY DECLARE @XT GEOGRAPHY /*     GET Latitude/Longitude FROM here:http://www.trave ...

  4. sql server 根据经纬度计算两点间距离

    DECLARE @BJ GEOGRAPHY DECLARE @XT GEOGRAPHY SELECT @BJ= geography::Point('39.92889', '116.38833', 43 ...

  5. iOS 地图 通过经纬度计算两点间距离

    - (double)calculateStart:(CLLocationCoordinate2D)start end:(CLLocationCoordinate2D)end { ; double st ...

  6. Java 根据两个经纬度坐标计算距离

    public class Distance{ private static final double EARTH_RADIUS = 6378137;    private static double  ...

  7. 【百度地图API】如何根据摩卡托坐标进行POI查询,和计算两点距离

    原文:[百度地图API]如何根据摩卡托坐标进行POI查询,和计算两点距离 摘要: 百度地图API有两种坐标系,一种是百度经纬度,一种是摩卡托坐标系.在本章你将学会: 1.如何相互转换这两种坐标: 2. ...

  8. 基于OpenStreetMap计算驾车距离(Java)

    最近公司有个项目需要计算6000个点之间的驾车距离,第一时间想到的是利用Google的Distance Matrix API,但是免费Key每天只能计算2500个元素(元素 = 起点数量 * 终点数量 ...

  9. 根据经纬度坐标计算距离-python

    一.两个坐标之间距离计算 参考链接: python实现 1.Python 根据地址获取经纬度及求距离 2.python利用地图两个点的经纬度计算两点间距离 LBS 球面距离公式 美团app筛选“离我最 ...

  10. Android给定坐标计算距离

    给定两点的经纬度.计算两点之间的距离.这里要注意经纬度一定要依照顺序填写 1. 利用android中的工具获得,单位是米 float[] results=new float[1]; Location. ...

随机推荐

  1. py周结04

    py周结04 异常类型,理语法结构及实践案例 1.异常类型 SyntaxError 语法错误 NameError 名字错误 IndexError 指数错误 KeyError 关键字错误 Indenta ...

  2. 2023年 DevOps 七大趋势

    随着时间的推移,很明显 DevOps 已经成为最高效的敏捷框架中的无人不知晓的名字.越来越多的企业(包括各类规模企业)正在采用 DevOps 方法来简化其运营效率.DevOps 的新时代趋势已经见证了 ...

  3. 【Java EE】Day09 JavaScript基础

    一.JavaScript简介 二.JavaScript语法 三.JavaScript对象

  4. 【敏捷研发系列】前端DevOps流水线实践

    作者:胡骏 一.背景现状 软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成.部署.运维等环节需要进一步优化交付效率.因 ...

  5. python基础(数据库、可视化软件Navicat、python操作MySQL)

    多表查询的两种方法 数据准备: 建表 create table dep( id int primary key auto_increment, name varchar(20) ); create t ...

  6. 异常处理语法结构、yield生成器及其表达式

    今日内容回顾 目录 今日内容回顾 异常处理语法结构 异常处理实战应用 生成器对象 自定义range功能 yield冷门用法 yield与return对比 生成器表达式 笔试题 异常处理语法结构 异常处 ...

  7. SQLMap入门——获取当前网站数据库的名称

    列出当前网站使用的数据库 python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --current-db

  8. Java基础篇——JVM初步

    1.JVM的位置 2.JVM体系结构 3.类加载器 虚拟机加载器(java) 启动类(根)加载器(C++) 扩展类加载器(java)↑ 应用程序加载器(java)↑ 4.双亲委派机制 类加载器收到类加 ...

  9. AIR32F103(八) 集成Helix MP3解码库播放MP3

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  10. 保姆级手把手图文并茂教你配置MAC系统Flutter环境

    Flutter 是什么 Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动.Web.桌面和嵌入式平台.Flutter 开源.免费,拥 ...