如何在 cartopy 地图的顶部叠加矢量注释图像?

How to overlay a vector annotation image on the top of a cartopy map?

如何在cartopy地图的顶部叠加矢量注释图像?

import cartopy.io.img_tiles as cimgt
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER

class TDT(cmigt.GoogleWTS):
    def _image_url(self, tile):
        x, y, z = tile
        url = 'http://t1.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
        return url
        
class TDT_1(cmigt.GoogleWTS):
    def _image_url(self, tile):
        x, y, z = tile
        url = 'http://t1.tianditu.gov.cn/DataServer?T=cva_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
        return url
        
def make_map(projection=ccrs.PlateCarree()):
    fig, ax = plt.subplots(figsize=(9, 13),subplot_kw=dict(projection=projection))
    gl = ax.gridlines(draw_labels=True)
    gl.xlabels_top = gl.ylabels_right = False
    gl.xformatter = LONGITUDE_FORMATTER
    gl.yformatter = LATITUDE_FORMATTER
    return fig, ax
    
extent = [105, 106, 35.5, 36.5]

request = TDT()
request_1=TDT_1()
fig, ax = make_map(projection=request.crs)
ax.set_extent(extent) 
ax.add_image(request, 10)
ax.add_image(request_1, 10)  #Can't to add another image,how to let it to display on the top of the map.
plt.show()  

我想获取带有矢量注释的合并图像,但我只获取了其中一张图像。 我该怎么办?

当您将两个图像叠加在一起绘制时,顶部图像将完全隐藏底部,除非您允许顶部图像具有一定的透明度。在您的情况下,您可以使用以下代码设置第二张图片:

ax.add_image(request_1, 10, alpha=0.6)

alpha值:

0 is 100% transparent
1 is 100% opaque

您需要一个介于 0 和 1 之间的合适值。

在某些情况下,可能需要 zorder 选项。

ax.add_image(request, 10, zorder=10)
ax.add_image(request_1, 10, alpha=0.6, zorder=20)

希望这对您有所帮助。