使用Python fiona读取多边形

时间:2016-02-29 04:45:28

标签: python gis shapefile shapely fiona

现在,我可以使用 fiona 来读取一个特定的多边形并将其绘制成如下:

## read the shapefile
import fiona
import shapely
from shapely.geometry import shape
c = fiona.open("xxx.shp")
pol = c.next()
geom = shape(pol['geometry'])
poly_data = pol["geometry"]["coordinates"][0]
poly = Polygon(poly_data)   

输出如下:

React 0.14 error: Module build failed: ReferenceError: [BABEL] .../node_modules/eslint-loader/index.js!/.../main.jsx: Unknown option: base.stage

但是当shapefile由几个shapefile组成时:

fig = plt.figure(figsize =(8,6))
ax = plt.gca()
map =   Basemap(llcrnrlon=114.3,llcrnrlat=37.95,urcrnrlon=114.75,urcrnrlat=38.2)
map.readshapefile("xxx",'xxx',zorder =1,)
patches=[]
cs=plt.cm.Blues_r(np.arange(21)/21.)
for info, shape in zip(map.xxx_info, map.xxx):
    x,y=zip(*shape)
    patches.append( Polygon(np.array(shape), True) )  # facecolor= '#6582B3'
ax.add_collection(PatchCollection(patches, facecolor= cs,edgecolor='none', linewidths=1.5, zorder=2,alpha = 0.8))

http://i13.tietuku.com/65d7d9d6a423a5d3.png

我不能使用上面的类似代码来获得4个多边形代表4个不同的区域。

我的问题

如何使用fiona读取并将其转换为几个fiona.polygon(在我的示例中,我想获得四个多边形)。然后,我可以使用每个多边形来执行更多操作。

0 个答案:

没有答案