1.背景
使用非等距离投影,无法获取较大空间距离的两点真实地面距离。
特别是我们经常使用的墨卡托投影是等角投影,特性是水平方向形变必须与竖直方向形变一致。
而如果没有投影坐标,使用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 是三维地球,不存在投影变形,添加两个点,连接成路径就能统计两点间的最短地面距离。
可以前往“地信遥感数据汇”(https://www.gisrsdata.com/)获取更多数据。