Answers:
我建议您检出以下内容:
球形:http : //www.movable-type.co.uk/scripts/latlong.html
大圆圈:http : //www.movable-type.co.uk/scripts/gis-faq -5.1.html
因此,您知道自己的两个纬度和经度
您可以为每个计算笛卡尔坐标:
xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));
xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));
然后使用以下公式计算两者之间的大圆距离:
MeanRadius * Acos(xa * xb + ya * yb + za * zb);
这种简化的方法允许预先计算x,y和z值,这些值可以存储在数据库中,以进行有效的“ x英里内的点数”查询。
当然,这是假设一个完美的球体,并且地球甚至都不是一个完美的椭球体,因此精度仅会达到几米。
GPS Visualizer的坐标计算器和距离工具页面上有一些有用的工具。其中之一计算两点之间的距离。它可以选择在显示大圆的地图上绘制点,也可以选择绘制轮廓并导出数据。