上下文底图匹配问题

Contextily Basemap matching issue

我正在尝试使用 python 中的上下文在底图上绘制一组点。我有以下由 shapely.geometry 生成的点对象,先是长,然后是纬度。

0 点 (-122.44040676 37.7452892821)

1 点 (-122.432337016 37.7814273807)

2 点 (-122.409302275 37.7923551768)

3 点 (-122.446989285 37.7963790178)

4 点 (-122.412922159 37.8076612624)

然后我将它转换成一个 geopandas 数据并用来绘制它。

import contextily as ctx

ax = geo_df.plot(figsize=(10,10), alpha = 0.5)
ctx.add_basemap(ax, zoom = 10, source=ctx.providers.Stamen.TonerLite)
ax.set_axis_off()

我将 crs 设置为 geo_df = geo_df.to_crs(epsg=3857)。问题是我可以看到这些点,但底图显示不正确。似乎只是在展示他们在海洋中间。我怀疑底图有不同的 crs 或者我的 crs 中可能有问题。有人对此有想法吗?这是一个完整的图像,有更多的点数。

假设您的 geoDataFrame 是使用有效的 crs 创建的,当您 add_basemap 时,可以使用选项 crs=gdf.crs.to_string() 指定 crs 以正确地重新投影地图图像。这是需要更改的相关代码行。

ctx.add_basemap(ax, crs=geo_df.crs.to_string(), zoom=10, source=ctx.providers.Stamen.TonerLite)