可以推广到裁剪其他XYZ地图。
# 序
使用一个面数据,去裁剪一个在线的谷歌卫星影像图。方法很绕,应该有更简便的方法,但我不知道。故开此贴记录一下。
# 添加XYZ_Tiles地图源
使用面数据去裁剪卫星图,卫星图作为动作的课题,应该被添加到 QGIS 当中。
https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}
# 将不规则多边形展为矩形
使用 Extract layer extent 功能将不规则多边形转为最小矩形。使用该最小矩形作为卫星图下载的范围。
# 另存为TIFF
使用面数据去裁剪卫星图,面数据必不可少。在这一步骤中,需要使用到面数据作为 Extent (确定四个点的坐标),将谷歌卫星图裁剪出一块矩形图像。将 Create VRT 复选框取消勾选,点击 Calculate from Layer 选项,在下拉框中选中面数据,并填入选项卡中 Resolution 的相关信息。
# 裁剪
经过上一步另存为的TIFF文件,内容是目标区域的矩形卫星图,若想得到某一特定形状区域的卫星图,还需要进行一次裁剪工作。
GDAL -> Raster Extraction -> Clip raster by mask layer源坐标系和目标坐标系留空就行,输出的是临时图层,也可以填入 Advanced Parameters 直接输出为TIFF文件。
# 依据面数据擦除某个区域的栅格数据
想把目标区域以外的卫星图抠出来作为背景图,网上有人说使用 Erase 方法能行,但是我的 ArcGIS 里的该方法只能擦除矢量数据。因此我能想到的最简单的方法是再画一个大一点的矢量面,再使用 Erase 方法将目标范围从面数据中抠除,再使用 Clip raster by mask layer 方法来裁剪卫星图,虽然麻烦了点,但也能得到想要的背景卫星图。