是否有类似matplotlib底图的库可以在街道级别显示地图?

问题描述 投票:2回答:2

在这种情况下,我希望绘制一个城市,华盛顿特区顶部的二维密度图。使用图表创建二维密度估计图,并通过其纬度和经度绘制点。我查看了底图,但似乎你只能绘制状态边界,并且无法在地图上获得城市边界和街道。我似乎没有办法用谷歌地图api做到这一点。问题:无法在底图中显示街道。

python python-2.7 data-visualization plotly matplotlib-basemap
2个回答
2
投票

Arcgis有很多在线可用的地图,可以通过arcgis REST API直接从matplotlib底图访问。

它没有在matplotlib manual中提及,但我在another site上发现了它。

就个人而言,我主要与Elevation/World_Hillshade合作,但that看起来他们也提供街道地图。

test_map = Basemap(llcrnrlon=15.2,llcrnrlat=47.06,urcrnrlon=15.5, urcrnrlat=47.49, epsg = 31284,resolution='i',projection='merc',lon_0=14.8,lat_0=47.2)


test__map.arcgisimage(service='ESRI_StreetMap_World_2D', xpixels = 12000, verbose= True)

给我以下我在缓存中的随机区域的情节:

lowres image of roads

我遇到的主要问题是epsg部分,我还没有完全弄清楚,所以无法帮助你在华盛顿特区


0
投票

我对使用epsg值有一点想法。

  1. 转到链接http://spatialreference.org/ref/?search=california&srtext=Search尝试找到您正在搜索的地方,例如我使用加利福尼亚州
  2. 打开所有链接中的一个链接,这些链接非常类似于您要映射的区域。我以此为例:http://spatialreference.org/ref/epsg/2228/
  3. 您应该能够看到WGS84 Bounds,它告诉了这张地图的边界
  4. 现在,您可以自由地使用地图中此边界之间的任何边界,并使用给定的epsg值

sacramento的示例代码:

**plt.figure(figsize=(18,20))
test_map = Basemap(llcrnrlon=-121.900, llcrnrlat= 38.50, urcrnrlon=-121.00, urcrnrlat=38.7000, epsg = 2872,resolution='i',projection='merc',lon_0=14.8,lat_0=47.2)
#sacramento : 38.5816° N, 121.4944° W
#-123.0900, 36.7400, -117.8200, 38.7000
test_map.arcgisimage(service='ESRI_StreetMap_World_2D', xpixels = 12000, verbose= True)**
© www.soinside.com 2019 - 2024. All rights reserved.