1

我正在尝试在 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 中可能存在问题。有人对此有想法吗?这是具有更多点的完整图像。

图片

4

1 回答 1

0

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

ctx.add_basemap(ax, crs=geo_df.crs.to_string(), zoom=10, source=ctx.providers.Stamen.TonerLite)
于 2021-01-16T10:10:37.957 回答