2017-04-22 12 views
0

メインサークルとの交差点だけでなく、その中心をそのメインサークルとの交差点の内側に持つすべての円を見つけるクリーンな方法がありますか?自分の中心を中心円とする円を見つける方法

enter image description here

+0

幾何学的な種類の円、またはポストギスの種類CircularStringまたはCurvePolygonを意味しますか?これはおそらく[dba.se]に適しています。それにフラグを立てて、司会者にそれを移動するよう依頼することができます。 –

答えて

0

確かにそれは簡単です。中心点を取得するには@@またはcenterを使用し、次にcontainsを使用するには@>を使用する必要があります。

SELECT 
    x AS r_value, 
    circle('0,0', x) @> @@ circle('2,3', 1) AS contains 
FROM generate_series(1,5) AS gs(x); 

- または -

SELECT 
    x AS r_value, 
    circle('0,0', x) @> center(circle('2,3', 1)) AS contains 
FROM generate_series(1,5) AS gs(x); 

それらがcircle('2,3',1)の中心を含むかどうか[1,5]の半径原点に中心を持つこのブルートフォーステストサークル。

詳細については、geometry functionsのドキュメントを参照してください。

0
select * from circles a , circles b 
where st_intersects(a.geom,st_centroid(b.geom)) 

また、where句の条件を追加することで結果をフィルタリングできます。私はメインサークル名を想定しています。

select * from circles a , circles b 
where st_intersects(a.geom,st_centroid(b.geom)) and a.circle_name = 'Main Circle'; 
関連する問題