上下文底图匹配问题
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)
我正在尝试使用 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)