GIS沖縄研究室

2011年10月06日

【質問】ラインノード数カウント方法

【質問】ラインのノード数を属性値として取得できないか?SuperMapサポートに問い合わせ,「SuperMap Deskproで、直接にラインのノード数を属性フィールド値として与えることはできません。手動で属性フィールドに追加する必要があります。」との回答.しかたがないので、mifファイルに吐き出し、DOSに降りawkを使ってノード数をカウントし、supermapに戻って、属性値として付加するというやり方を考えました。結果、たしかに出来たのですが、もう少し上手くできないものか?(東京,Sさん)

【回答】確かに空間オブジェトのアトリビュートを利用する関数は用意されていないので,サポートの回答は当たっているといます.ですが,SuperMapを離れることなく処理することは可能です.
手順は以下のとおりですのでお試しください.
@対象ラインデータセットを準備する.
Aメニューより,データ処理/タイプ変換 へ進む.
Bサブメニューより「ラインデータセットをポイントデータセットへ変換」に進む.
C開いたウィンドウで,データソース中のラインデータセットを指定し,変換後のポイントデータセットの名称を決め,設定する.
D実行するとラインのノードをポイント化したデータセットが作成される.

以上です.この時,ラインデータの全属性情報はポイントに引き継がれます(システム属性は除く).そこでライン情報を作るときにユニークコード(とりあずidとしておきます)を属性情報に持たせておけば,どのポイントがどのラインから来たか一目瞭然です.あとはポイントの属性情報をSQLクエリを使って,ラインのidでグループ化,この時にポイント数をcount関数で勘定します.あとは,このクエリ結果属性データセットを,ラインidでもとのラインデータセットにこのポイント数を結合すればいいだけです.
この辺の手順は書籍に書いた内容から応用いただけると思います.

posted by gis-okinawa at 10:51| Comment(0) | TrackBack(0) | 質問・回答
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/48346906

この記事へのトラックバック
Powered by さくらのブログ