Python 开放式街道地图(pyproj)。如何解决语法问题?

Python 开放式街道地图(pyproj)。如何解决语法问题?,python,geopandas,pyproj,contextily,Python,Geopandas,Pyproj,Contextily,使用pyproj可视化开放的街道地图并获得以下错误: > AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyproj\crs.py:77: > FutureWarning: '+init=<authority>:<code>' syntax is deprecated. > '<authority>:<code>' is the preferred init

使用pyproj可视化开放的街道地图并获得以下错误:

> AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyproj\crs.py:77:
> FutureWarning: '+init=<authority>:<code>' syntax is deprecated.
> '<authority>:<code>' is the preferred initialization method.   return
> _prepare_from_string(" ".join(pjargs))
程序运行,但弹出一张空白的地图

我在谷歌上找不到多少。这是什么?如何修复

请参阅下面的代码片段:

##Create map
crs = {'init': 'epsg:4326'}
new_df = gpd.GeoDataFrame(new_df, crs=crs)

#Contextly
new_df = new_df.to_crs(epsg=3857) 

##Plot
variable = 'All' #set a variable that will call column
fig, ax = plt.subplots(1, figsize=(50, 50)) #create figure and axes for Matplotlib
ox = new_df.plot(column=variable, cmap='viridis', linewidth=0.3, ax=ax, edgecolor='0.8',alpha=0.5,scheme='equal_interval',k=10,legend=True,legend_kwds={'loc': 'lower left'})

##ADD BASEMAP
ctx.add_basemap(ox,zoom=15)

#Remove the axis
ox.set_axis_off()

##Save Map
plt.savefig('Latest_Map.png')
##Show Map
plt.show()

关于语法问题,当您重新投影时,pyproj会发出警告。Geopandas已更改其文件,以反映(见和)和建议:

  • 手工设置
my_geoseries.crs=“EPSG:4326”

  • 重新投射
world=world.to_crs(“EPSG:3395”)#world.to_crs(EPSG=3395)也可以工作

注意:
world.to_crs(epsg=3395)
确实可以工作,但它仍然会发出警告(因为
函数来自
fiona.crs
,该函数在内部被调用,并且仍然使用
{init':…
)。如果您不想要警告:

new_df = gpd.GeoDataFrame(new_df)
new_df.crs = "EPSG:4326"    # set it by hand

new_df = new_df.to_crs("EPSG:3857")

然而,这不应该,也可能不是地图空白的原因。不知道实际的
新测向
,很难判断,但使用geopandas数据集的测向尝试代码(
naturalearth\u lowres
)它似乎工作得很好。在缩放出现一些问题后,我建议您调用
ctx.add\u basemap
而不使用
zoom=15
参数(默认值为
zoom=“auto”
)请参阅。

这只是一个警告,您可以放心地忽略它。可能包括一些代码,例如,您正在查看的纬度/纬度。这是什么以及如何修复它?这很难用这些少量的信息来回答。警告来自GeoPandas的内部。这将在下一版本的GeoPandas中解决,但是r现在您对此无能为力,因此在这种情况下可以安全地忽略它。这不是您的完整代码,不是吗?您为
new_df
指定了哪些值?您可以添加完整的代码吗?将语法更改为
new_df.crs=“EPSG:4326”在我的代码中,,但仍然得到未来警告。<代码> FasyESPG/<代码>函数<代码>菲奥娜。CRS < /代码>确实将CRS字符串更改为<代码> {“iIT”:…}/<代码>格式。看来,在新版本的菲奥娜(2 DeV)中不会有任何更改。关于
from_espg
行为。有没有办法使此警告静音,或者我们应该等待Geopandas更新?此警告在您重新投影时出现,而不仅仅是设置crs,因此请稍后检查您如何将
应用于\u crs
方法。如果您这样应用,将调用Fiona的
from_epsg
w_df.to_crs(epsg=xxxx)
(因为您提供了epsg参数)。因此,您需要像您一样设置
.crs
,并像上面的答案一样将
应用于\u crs
。如果我这样做,我不会收到任何警告(pyproj v2.4.2,geopandas v0.6.2).关于更新和未来版本,我没有参与,所以我不知道会发生什么。感谢澄清。在我的案例中,
new\u df.to\u crs(epsg=xxxx)
folium.GeoJson()
内部调用,只通过了epsg,没有crs。