2016-10-11 78 views
0

我刚刚安装好身材,基本的东西看起来很好。我开始在this教程中使用一个示例来感受一下图书馆。关于蟒蛇形状异常的困惑ctypes.ArgumentError

具体做法是:

>>> from shapely.wkt import loads 
>>> g = loads('POINT (0.0 0.0)') 
>>> g.buffer(1.0).area  # 16-gon approx of a unit radius circle 
3.1365484905459389 
>>> g.buffer(1.0, 128).area # 128-gon approximation 
3.1415138011443009 
>>> g.buffer(1.0, 3).area  # triangle approximation 
3.0 
>>> list(g.buffer(1.0, cap_style='square').exterior.coords) 
[(1.0, 1.0), (1.0, -1.0), (-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0)] 
>>> g.buffer(1.0, cap_style='square').area 
4.0 

当我打这个电话给g.buffer(1.0, cap_style='square'),我得到以下错误:

buf = list(shp.buffer(1.0, cap_style='square')) 
File "/usr/lib64/python2.7/site-packages/shapely/geometry/base.py", line 538, in buffer 
mitre_limit)) 
File "/usr/lib64/python2.7/site-packages/shapely/topology.py", line 78, in __call__ 
    return self.fn(this._geom, *args) 
ctypes.ArgumentError: argument 5: <type 'exceptions.TypeError'>: wrong type 

阅读该文档here我看到,这个例子是在匀称的评论/geometry/base.py模块。但是我注意到,cap_style参数的默认值是int类型(CAP_STYLE.round),而不是字符串。不知道这是否意味着什么。

有没有人有任何想法是怎么回事?

回答

0

看来你自己回答了你的问题:) 这确实是你提到的问题。 cap_style键参数必须是整数。根据shapely documentation,只有以下值可用。

The styles of caps are specified by integer values: 1 (round), 2 (flat), 3 (square). These values are also enumerated by the object shapely.geometry.CAP_STYLE.