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