【问题标题】:Contextily Basemap matching issue上下文底图匹配问题
【发布时间】:2021-01-16 00:43:57
【问题描述】:

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

【问题讨论】:

    标签: geopandas matplotlib-basemap contextily


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2013-06-20
      • 2017-03-13
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多