✍️ 陈箫翰 • 📅 2026-01-19

# 以地图和卫星图为底图

当绘图区域非常小时，GMT 自带的海岸线数据与地形数据精度较差，不适宜用来绘制底图。对于这种情况，读者可以使用公开的地图或卫星图接口（例如高德地图、谷歌地图等）绘制底图。 GMT 没有下载此类地图的功能。 google-map-downloader 中的 `downloader_gmtchina.py` 脚本支持可以下载高德地图及卫星图以及 谷歌地图及卫星图。详细用法见 `google-map-downloader` 的官方说明文档。

以厦门市为例，使用如下参数下载四种地图::

    $ python downloader_gmtchina.py 118.055917 118.244753 24.399450 24.559724 12 google.tif google
    $ python downloader_gmtchina.py 118.055917 118.244753 24.399450 24.559724 12 google_sat.tif google_sat
    $ python downloader_gmtchina.py 118.055917 118.244753 24.399450 24.559724 12 amap.tif amap
    $ python downloader_gmtchina.py 118.055917 118.244753 24.399450 24.559724 12 amap_sat.tif amap_sat

当绘图区域非常小时，在 GMT 中可以使用“度:分:秒”的格式表示地理坐标，避免计算小数。 例如 `121:52:38.3` 表示东经 121 度 52 分 38.3 秒。 下面的例子展示了绘制厦门市四种地图的示例。通过对比可见 GMT 自带的海岸线数据在绘图区域较小时准确性较差。

    #!/usr/bin/env bash

    gmt begin map
        # 设置绘图时以“度:分:秒”的格式显示坐标
        gmt set FORMAT_GEO_MAP ddd:mm:ss.xF
        # 设置标注、标题格式
        gmt set FONT_ANNOT 5p
        gmt set FONT_TITLE 8p
        gmt set MAP_TITLE_OFFSET 0p

        # 指定作图区域为东经118度4分9.1秒到118度12分36秒，北纬24度25分12.6秒到24度33分23秒
        # -Bxa5mf 设置经度标注间隔5分，-Bya4mf 设置纬度标注间隔4分
        gmt basemap -R118:04:09.1/118:12:36.0/24:25:12.6/24:33:23.0 -JM4c -Bxa5mf -Bya4mf -B+t"Amap (GCJ-02 to WGS84)"
        # 加载高德地图
        gmt grdimage amap.tif -Ve
        # 以最高精度绘制 GMT 自带的海岸线数据，并绘制比例尺
        gmt coast -W0.5p -Lg118:11:00/24:27:00+c118:11:00/24:27:00+w2k+u -Df

        # -X5.5c 将绘图原点右移5.5厘米
        gmt basemap -R118:04:09.1/118:12:36.0/24:25:12.6/24:33:23.0 -JM4c -Bxa5mf -Bya4mf -B+t"Amap Satellite (GCJ-02 to WGS84)" -X5.5c
        # 加载高德卫星图
        gmt grdimage amap_sat.tif -Ve
        gmt coast -W0.5p -Df

        # -X-5.5c 将绘图原点左移5.5厘米，-Y-5.5c 将绘图原点下移5.5厘米
        gmt basemap -R118:04:09.1/118:12:36.0/24:25:12.6/24:33:23.0 -JM4c -Bxa5mf -Bya4mf -B+t"Google Maps (GCJ-02 to WGS84)" -X-5.5c -Y-5.5c
        # 加载谷歌地图
        gmt grdimage google.tif -Ve
        gmt coast -W0.5p -Df

        gmt basemap -R118:04:09.1/118:12:36.0/24:25:12.6/24:33:23.0 -JM4c -Bxa5mf -Bya4mf -B+t"Google Satellite WGS84" -X5.5c
        # 加载谷歌卫星图
        gmt grdimage google_sat.tif -Ve
        gmt coast -W0.5p -Df
    gmt end show