使用Basemap获取城市地图的最佳方式?

时间:2015-07-06 19:23:48

标签: python google-maps matplotlib gis geo

我正在尝试使用Basemap在python中显示城市地图,例如旧金山。我尝试过以下方法:

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# llcrnrlat,llcrnrlon,urcrnrlat,urcrnrlon
# are the lat/lon values of the lower left and upper right corners
# of the map.
# lat_ts is the latitude of true scale.
# resolution = 'c' means use crude resolution coastlines.
m = Basemap(projection='merc',llcrnrlat=37.79,urcrnrlat=37.81,\
        llcrnrlon=-122.42,urcrnrlon=-122.4,lat_ts=20,resolution='c')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,91.,30.))
m.drawmeridians(np.arange(-180.,181.,60.))
m.drawmapboundary(fill_color='aqua')
plt.title("Mercator Projection")
plt.show()

然而,这不起作用,只显示地图的蓝色。那么如何使用python获取旧金山地图?

1 个答案:

答案 0 :(得分:3)

你的坐标一定是错的:它显示蓝色,因为你正在某处放大海洋。

此外,此代码仅绘制海岸线as explained in the documentation。要获取城市地图,您实际上需要使用其中一个可用的后端加载相应的数据。例如,您可以从API服务查询数据,例如ArcGIS等,with the corresponding method