✍️ 田冬冬 , 周茂 , 陈箫翰 • 📅 2025-08-23

# -JG: Azimuthal orthographic/General perspective

Azimuthal orthographic（正射方位投影）是一种从无穷远距离处的透视投影，因而常用于绘制从外太空看地球。 与 Lambert 等面积投影以及立体投影类似，一次只能看到一个半球。 该投影既不是等面积也不是保角，在半球边界处有较大畸变。 从投影中心出发的任意方向是真实的。

该投影的参数为：

-JG lon/lat[/distance]/width 或 -Jg lon/lat[/distance]/scale

- lon/lat 是投影中心位置

- distance 是边界离投影中心的度数 [<=90，默认值为 90]

- width 地图宽度

- scale 地图比例尺，可以取 1:xxxx 格式（图上 1 厘米对应真实地球 xxxx 厘米）， 也可以是 radius/latitude（表示从投影中心到纬线 latitude 在图上的距离为 radius）

    gmt coast -Rg -JG-75/41/12c -Bg -Dc -A5000 -Gpink -Sthistle -png GMT_orthographic

使用正射投影绘制半球

-Jg 加上更多的参数时还可以用于绘制 General perspective（透视投影），以在二维平面内模拟从太空看三维的地球。 该投影与正射投影类似，都是从空间进行透视投影。 不同之处在于，正射投影的透视点在无穷远处，而透视投影可以指定透视点的位置， 因此整体效果类似于从飞行器拍摄地球。

该投影的参数为：

-Jg|G lon0/lat0/scale|width[+a azimuth][+t tilt][+v vwidth/vheight][+w twist][+z altitude[r|R]|g]

- lon/lat 投影中心的经纬度

- -Jg 对应 scale 地图比例尺，可以取 1:xxxx 格式（图上 1 厘米对应真实地球 xxxx 厘米）， 也可以是 radius/latitude（表示从投影中心到纬线 latitude 在图上的距离为 radius）

- -JG 对应 width 地图宽度

- +a 设置 azimuth 观察者的方位角（相对于北向顺时针旋转的角度），默认值为 0 度

- +t 设置 tilt 倾角（单位为度），即相对于投影平面向上的角度，默认值为 0 度。 若值为负数则视角以地平线为中心

- +v 限制了视角的角度为 vwidth 和 vheight ，单位为度。

- +w 设置 twist 扭转角度，即投影图像视轴的顺时针旋转，默认值为 0 度。180° 的扭转（如下图）模仿了飞行器倒挂飞行的情形。

- +z 设置 altitude 观察者所处的海拔，单位为 km，默认值为无限大。 附加 R 表示所给的值为以地球半径为单位，观察者与地心的距离。 附加 r 表示所给的值为 km 为单位的观察者与地心的距离。 附加 g 表示地球同步轨道的高度。

备注

由于透视投影类似从空间的飞行器中观察地球，azimuth，tilt 以及 twist 可以从飞行器姿态的角度理解， 分别对应航偏角、俯仰角以及翻滚角。twist 为 180° 时，可以看作“头朝下”观察地球。

    gmt coast -Rg -JG4/52/12c+z230+a90+t60+w180+v60 -Bx2g2 -By1g1 -Ia -Di -Glightbrown \
              -Wthinnest -Slightblue --MAP_ANNOT_MIN_SPACING=0.6c -view GMT_perspective

透视投影