-j 选项
-j 选项用于控制球面上两点间距离的计算方式。其语法为:
-je|f|g
在计算地球或其它星体上任意两点间的距离时,GMT 提供了三种不同的计算方式: 平面距离、大圆路径距离和测地线距离。 用户可以根据自己的需求选择适合的距离计算方式。
-jg 将地球当做球体,用大圆路径公式计算球面距离 [GMT默认使用此方式]
-jf 使用展平地球公式计算球面距离。此种方式计算速度快但精度低
-je 使用测地线公式计算球面距离,计算距离时考虑了地球椭率。此种方式计算速度慢但精度最高。
平面距离
地球上任意两点 A 和 B 的平面距离计算公式:
其中 R 是地球平均半径(由参数 PROJ_ELLIPSOID 和 PROJ_MEAN_RADIUS 控制), \(\theta\) 是纬度, \(\Delta \lambda = \lambda_A - \lambda_B\) 是经度差。 式中地理坐标的单位均是弧度,且需要考虑到跨越经度的周期性问题。
该方法的特点是计算速度快但精度不高,适用于纬度相差不大且对计算效率要求不高的情况。
大圆路径距离
该方法将地球近似为一个半径为R的球,地球上任意两点 A 和 B 的大圆路径距离可以用 Haversine 公式 计算:
该方法是 GMT 默认使用的距离计算方法,适用于大多数情况。
如下GMT 参数可以控制大圆路径距离的计算细节,分别是:
PROJ_ELLIPSOID 设置地球椭圆
PROJ_MEAN_RADIUS 设置地球平均半径的计算方式
PROJ_AUX_LATITUDE 指定将大地纬度转换为多个适合球状 近似的辅助纬度中的其中一个(仅当 PROJ_ELLIPSOID 不为 sphere 时有效)
测地线距离
地球上两点间的精确距离可以用 Vincenty (1975) 的完全椭球公式计算。 该方法计算得到的距离精度最高精确到 0.5 毫米,同时也是计算速度最慢的方式。
如下参数可以控制大圆路径的计算细节:
PROJ_ELLIPSOID 设置地球椭圆
PROJ_MEAN_RADIUS 设置地球平均半径的计算方式
PROJ_AUX_LATITUDE 指定将大地纬度转换为多个适合球状 近似的辅助纬度中的其中一个(仅当 PROJ_ELLIPSOID 不为 sphere 时有效)
PROJ_GEODESIC: 设置完全椭球公式。默认为 Vincenty,还可以设置为 Rudoe (GMT4所使用的计算公式)或 Andoyer (近似公式,精确到10米量级)。