アドレス ポイントを描画し、それらが大きなシェープファイル内にあるかどうかを確認しています。ただし、ここでは、URBAN タイプに該当するかどうかも確認したいと思います。この情報は、列の 1 つが TYPE である機能のリストとして提供されます。欲しいポイントが都会的かそうでないか(urban=True)なら合格
共催ポイントの私のコード:
def get_random_point_in_polygon(region, urban=None):
while True:
address = ogr.Geometry(ogr.wkbPoint)
address.AddPoint(random.uniform(region.get_region().geometry().GetEnvelope()[0],
region.get_region().geometry().GetEnvelope()[1]),
random.uniform(region.get_region().geometry().GetEnvelope()[2],
region.get_region().geometry().GetEnvelope()[3]))
if region.get_region().geometry().Contains(address) and XXXXXXXXXX:
return address
Region は大きなシェープファイルです これで、すべてが region 内にある他の 52 個のフィーチャのリストもできました。それらには、情報 URBAN または RURAL を含む FIELD があります。
XXXXXX を次のようなコードで満たしたい: 「住所が FIELD = URBAN であるリスト内のいずれかの機能内にある場合」
何か案は?何かのようなもの:
any(x in a for x in b)
しかし、シェープファイルの場合...