专业编程基础技术教程

网站首页 > 基础教程 正文

GIS | 四种方法获取地球上两点的真实地面距离

ccvgpt 2024-08-16 14:57:46 基础教程 9 ℃

1.背景


GIS | 四种方法获取地球上两点的真实地面距离

使用非等距离投影,无法获取较大空间距离的两点真实地面距离。
特别是我们经常使用的墨卡托投影是等角投影,特性是水平方向形变必须与竖直方向形变一致,但有长度变形。

而如果没有投影坐标,使用arcgis等地理软件,无法计算真实地面距离。

2.四种处理方法

2.1 公式计算法

d=111.12*cos{1/[sin ΦAsin ΦB 十 cos ΦAcos ΦBcos( λB—λA)]}

其中A点经度,纬度分别为λA和ΦA,B点的经度、纬度分别为λB和ΦB,d为距离。111.12的来源是赤道周长4万公里,则 40000 公里/360 度=111.11公里/度(地球是非常近似球体的)。附上一段JavaScript的代码:

function degreesToRadians(degrees) {
  return degrees * Math.PI / 180;
}

function distanceInKmBetweenEarthCoordinates(lat1, lon1, lat2, lon2) {
  var earthRadiusKm = 6371;

  var dLat = degreesToRadians(lat2-lat1);
  var dLon = degreesToRadians(lon2-lon1);

  lat1 = degreesToRadians(lat1);
  lat2 = degreesToRadians(lat2);

  var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
          Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
  return earthRadiusKm * c;
}

2.2 在线工具计算

使用在线工具,直接得到答案,在线工具地址为:

https://keisan.casio.com/exec/system/1224587128

2.3 arcgis pro

这个我不会,哈哈哈,因为电脑里面没装pro。给一个视频:

2.4 Google earth计算

Google earth 是三维地球,不存在投影变形,添加两个点,连接成路径就能统计两点间的最短地面距离。

Tags:

最近发表
标签列表