2
最小距離を考慮して、複数のフィーチャにポイントを生成します
ポイントで表される風力タービンを作成する機能があります。基本的には、多少の変更はありますが、ポリゴン(固定)ツール内のランダムポイントからのコードを使用します。 目標は、指定された最小距離を考慮して、ポリゴン内にランダムなポイントを作成することです。これは特に、別のポリゴンに近接していないポリゴン(単一のポリゴンなど)で非常にうまく機能します。 ただし、ポリゴンが別のポリゴンに近接または隣接している場合(たとえば、以下に示すように)、各ポリゴンのポイントは、赤で示すように最小距離内にある可能性があります。 赤のポイントが近くのポリゴンの別のポイントに近づかないようにコードを変更するにはどうすればよいですか? 理想的には、複数のポイントを1つのポイントに置き換えたいです。 Pythonコンソールで再現できるコードを次に示します。関数を実行する前に、関連するCRSでポリゴンレイヤーを選択する必要があります。 import random from PyQt4.QtCore import QVariant def checkMinDistance(point, index, distance, points): if distance == 0: return True neighbors = index.nearestNeighbor(point, 1) if len(neighbors) == 0: return True if neighbors[0] in points: np = points[neighbors[0]] if np.sqrDist(point) < (distance * distance): return False return True …