ラインストリング上にある間、ランダムなフィッシュネットのセルに互いに指定された距離でポイントを作成します
1x1 kmセルのフィッシュネットを受け取る陸上プロトコルがあります。一部のセルはランダムに選択されます。各セルに4つのポイントを配置する必要があり、これらのポイントも道路上になければなりません。ポイント間の最小距離は、すべての細胞のすべてのポイントのために500メートルでなければならない、可能な場合、またはそれがない場合は、我々は可能な最大距離を求めています。 最初の試行では、ST_CreateFishnetを使用してすべてのセルを4つの500x500 mセルに分割し、次にサブセルの重心にポイントを配置してから、最も近い道路(ST_ClosestPoint)に配置します。いくつかの良い結果が得られますが、以下の例では、ポイント5が6から近すぎるため、左側の道路に移動できることがわかります。 WITH r1 AS ( -- only sub-cells which intersects random cells SELECT id_maille, ROW_NUMBER() OVER() AS id_grille, fishnet_500.geomgrille FROM fishnet_500 JOIN t_mailles ON ST_Intersects(ST_Buffer(t_mailles.geom,-200), fishnet_500.geomgrille) -- buffer < 0 to not select neightbours ) , r2 AS ( -- cut roads in every cells SELECT id_maille, …