2

指定されたポリゴンで交差するポイントの結果が必要ですが、エラーが発生しています。

私のコードは次のとおりです。

from pysal.cg.standalone import get_polygon_point_intersect
poly=pysal.open('Busroute_buffer.shp')
point=pysal.open('pmpml_24.shp')

i=get_polygon_point_intersect(poly,point)

しかし、エラーメッセージが表示されます:

「PurePyShpWrapper」オブジェクトには属性「bounding_box」がありません

4

1 に答える 1

1

pysal.openシェイプではなく、シェイプの「ファイル」オブジェクトを返します。

形状を取得するには、ファイルを反復処理するか、形状のリストを返すファイルの read メソッドを呼び出す必要があります。ファイルにシェイプが 1 つしかない場合でも、リストが返されます。get_polygon_point_intersect正確に 1 つのポリゴンと 1 つのポイントを取るため、比較するポイント/ポリゴンごとに呼び出す必要があります。

point_file = pysal.open('points.shp')
polygon_file = pysal.open('polygons.shp')
# .read with no arguments returns a list of all shapes in the file.
polygons = polygon_file.read()
for polygon in polygons:
    # for x in shapefile: iterates over each shape in the file.
    for point in point_file:
        if get_polygon_point_intersect(polygon, point):
            print point, 'intersects with', polygon

これを行うには、おそらくもっと効率的な方法が他にもあります。詳細については、 を参照しpysal.cg.locatorsてください。

*上記のコードはテストされておらず、例示のみを目的としています。

于 2015-06-09T19:10:50.497 に答える