在城市地图上绘制点的好用Python工具包是什么?

5
我正在尝试在城市地图上绘制一些点,但是找不到一个适合的软件包。看起来Matplotlib Basemap对于覆盖30英里半径内的大量点缺乏足够的细节,例如我没有看到在小比例尺下添加高速公路和其他区别特征的方法。
因此,我想问一下是否有办法将这些城市地图特征添加到Basemap中,或者是否有其他软件包适用于在城市地图上绘制30英里尺度的散点图。感谢您的帮助!
1个回答

5
Basemap可能很适合这个任务。如果可以获取地理形状文件,添加邮政编码边界和主要/次要道路(以及许多其他数据)就没有问题。这是一个示例输出:enter image description here 如果您想在美国绘制地图,则此网站提供免费的形状文件:http://www.landsat.com/free-gis-data.html 我使用了德克萨斯州的邮政编码和道路数据(以及一堆纬度/经度坐标)生成了上面的地图。
您可以像这样加载形状文件:
self.map = Basemap(projection='merc', lat_0=mlat, lon_0=mlon, resolution = 'l', area_thresh = 1.0, 
llcrnrlon=-num, llcrnrlat=num, 
urcrnrlon=-num, urcrnrlat=num) 

map.readshapefile('/home/person/zipfolder/rds/tl_2010_48_prisecroads', 'Streets',drawbounds = False)

for shape in self.map.Streets:
    xx, yy, = zip(*shape)
    self.map.plot(xx, yy, linewidth = 1.5, color='green', alpha=.75)   
##Same for zip codes

有没有更动态的解决方案?我正在想象许多不同的区域,所以无法预加载我需要的所有地图。 - user3654387
你可以使用Pymaps/Google Maps。https://code.google.com/p/pymaps/wiki/PymapsHowto - Ryan
谢谢您的建议。我会去查看并在进展时向您汇报。 - user3654387
@user3654387,进展如何? - divmermarlav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接