「NTS」を利用しC#でポリゴンの結合を行う

「NTS」は、「JTS」の.NET版のオープンソースライブラリで、C#で、図形演算が可能になります。
今回は、この「NTS」を利用して、ポリゴンの結合を行います。

1.NTSを使ったポリゴン結合例

NTSでは、Geometoryクラスの、Unionメソッドを利用します。使う側は、非常に簡単です。自分では到底作れません。
以下、ソースの記述例です。

2.様々なパターンのポリゴンを結合

上記の例を含め様々なパターンのポリゴンを結合していました。結果は以下の通り

No 図形の条件 結合前の図形 結合後の図形
1 2つの図形が同じ
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
 POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
2つの図形が点で接している
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((200 200, 200 300, 300 300, 300 200, 200 200))
MULTIPOLYGON (((100 100, 100 200, 200 200, 200 100, 100 100)),
((200 200, 200 300, 300 300, 300 200, 200 200)))
2つの図形が面で接している
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((100 200, 100 300, 200 300, 200 200, 100 200))
POLYGON ((100 100, 100 200, 100 300, 200 300, 200 200, 200 100, 100 100))
2つの図形が一部重なっている
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((150 150, 150 250, 250 250, 250 150, 150 150))
 POLYGON ((100 100, 100 200, 150 200, 150 250, 250 250, 250 150, 200 150, 200 100, 100 100))
一方の図形に含まれている
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((125 125, 125 175, 175 175, 175 125, 125 125))
 POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
2つの図形が離れている
POLYGON ((100 100, 100 200, 200 200, 200 100, 100 100))
POLYGON ((250 100, 250 200, 350 200, 350 100, 250 100))
MULTIPOLYGON (((100 100, 100 200, 200 200, 200 100, 100 100)),
((250 100, 250 200, 350 200, 350 100, 250 100)))
Print Friendly, PDF & Email

シェアする

  • このエントリーをはてなブックマークに追加

フォローする