将世界街道地图添加到地图中



我在使用basemap-arcgisimage函数时遇到问题。下方的样本代码

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from PIL import Image
m = Basemap(
llcrnrlat=40.361369, llcrnrlon=-80.0955278,
urcrnrlat=40.501368, urcrnrlon=-79.865723,
epsg = 2272
)
#m.arcgisimage(service='ESRI_StreetMap_World_2D'
, xpixels=7000, verbose=True)
m.arcgisimage(service='World_Physical_Map', xpixels=7000, ypixels=None, dpi=96,verbose=True)
#m.arcgisimage(service='ESRI_Imagery_World_2D', xpixels=7000, verbose=True)
plt.show()

当我运行这个时,arcgisimage((函数在PIL中崩溃,并显示错误消息

Traceback (most recent call last):
File "C:Machine LearningGeospatialpittsburgh_map.py", line 11, in <module>
m.arcgisimage(service='World_Physical_Map', xpixels=7000, ypixels=None, dpi=96,verbose=True)
File "C:UserspeterAppDataLocalProgramsPythonPython38libsite-packagesmpl_toolkitsbasemap__init__.py", line 4263, in arcgisimage
return self.imshow(imread(urlopen(basemap_url)),ax=ax,
File "C:UserspeterAppDataLocalProgramsPythonPython38libsite-packagesmatplotlibimage.py", line 1490, in imread
with img_open(fname) as image:
File "C:UserspeterAppDataLocalProgramsPythonPython38libsite-packagesPILImageFile.py", line 121, in __init__
self._open()
File "C:UserspeterAppDataLocalProgramsPythonPython38libsite-packagesPILPngImagePlugin.py", line 692, in _open
cid, pos, length = self.png.read()
File "C:UserspeterAppDataLocalProgramsPythonPython38libsite-packagesPILPngImagePlugin.py", line 162, in read
pos = self.fp.tell()
io.UnsupportedOperation: seek

我也遇到了同样的问题,很可能是使用conda安装的。我卸下了底座模块,并用pip重新安装了它。然后一切正常

如果您遵循了basemap的安装说明,那么您在运行basemap时遇到的任何问题都可能仍未解决,因为它已被弃用,取而代之的是caropyhttps://github.com/matplotlib/basemap.

最新更新