1999.4.26
TNTmipsV6.0

隣接関係

 
TNTmipsでは次のようなことが出来ます。
 
Q1.あるポリゴンに接した異なる属性を持ったポリゴンの抽出。
たとえば属性1を持ったポリゴンに属性2,3というようなポリゴンが接していた場合に、属性2,3のポリゴンを取り出す。
 
Q2.属性1と属性2を分ける境界線を抽出する。
 
GettingStarted冊子のBuilding and Using Queries(6 May 1998)の20ページに解説があります。


Q1について

1.後でポリゴンの抽出をすることを考えて、Edit/Spatial Dataメニューを選択。
2.説明用に用意したサンプルのポリゴンを開きました。
このポリゴン・ベクタにはPOLYテーブル、CODEフィールド(文字;string)があり、いくつかのポリゴンにすでにAというレコードがアタッチされています。


3.まずは属性Aを持つポリゴンに接するポリゴンの検索します。
4.Show Detailsボタンを押し、レイヤーリストを表示する。
5.ポリゴンのみ青(検索対象)ボタンにする。
6.Select/Deselectボタンを押し、メニューからSelect by Queryを選択。


7.そこに次の式を入れる。


8.Apply(適用)ボタンを押します。17個選ばれました。
  
 
9.検索解除はこのボタンです。

 
 
次に別のポリゴンを使います。今度はAの他にB,Cの属性を持ったポリゴンが混じっています。
1.前のベクタはFile/Closeで閉じます。
2.新しいサンプルデータを開きます。

 


3.今度は次のクエリを書くか、開きます。


前のクエリとの違いは、前のクエリの前にPOLY.CODE==Bを検索しています。従って、属性がBで、Aに接しているポリゴンを探すことになります。
{, }はbegin, endと同じです。

4.Applyします。
5.赤が選択されたポリゴンです。


6.選択されたポリゴンを抽出するにはテクがあります。
 

選択ポリゴンの抽出

1.File/New/Vectorで新しいベクタを作ります。
2.ジオリファレンスは既に開いたベクタと同じを選択します。


3.レイヤーの前の鉛筆マークを押して、選択元のベクタをアクティブにします。


4.copyボタンを押します。


4.出たウィンドウのラジオボタンを押し、copyボタンを押します。これで一時的にどこかにコピーされました。Closeで閉じます。


5.次に貼り込み先を指定します。今度はNewVectorの方をアクティブにします。


6.Pasteボタンを押します。


7.ウィンドウ内のPasteボタンを押します。NewVectorにコピーされます。


8.前のベクタを非表示にします。(zoom boxかなにかを押せば、緑の枠は消えます)。


9.これでNewVectorを保存すれば抽出できたことになります。

 
 

Q2について

1.再度ベクタを表示します。
2.今度は線のところのSelect by queryを使います。


3.次のクエリの意味は、線のInternalテーブルの中のRightPolyフィールド(右側ポリゴン)のPOLY.CODE属性がAであるもの、という意味です。


4.これを2つ組み合わせて、次のようにします。これは右側ポリゴンの属性がA、左側にあるポリゴンの属性がBである線をさがせ、という意味です。
(Vect.poly[Internal.RightPoly].POLY.CODE$ =="A") and (Vect.poly[Internal.LightPoly].POLY.CODE$ =="B")

5.右がBで左がAということもありますから、最終的には以下となります。
((Vect.poly[Internal.RightPoly].POLY.CODE$ =="A") and (Vect.poly[Internal.LeftPoly].POLY.CODE$ =="B"))
or
((Vect.poly[Internal.RightPoly].POLY.CODE$ =="B") and (Vect.poly[Internal.LeftPoly].POLY.CODE$ =="A"))

6.Applyボタンを押します。6ラインありました。


7.赤で強調表示された線が選択された線です。線を見やすくするため、線幅を1にしています。

 
 
(C)OpenGIS Corp.