ArcGIS カスタマイズ事例集 ハイドロシステム株式会社 Copyright (C) 2010 Hydro Systems corp.
カスタマイズの目的と方法
カスタマイズの目的 ArcGIS の機能を目的に応じて拡張できます ArcGIS には 豊富な機能が含まれています ArcMap のメニューやボタンから使用できる機能は ArcGIS の全ての機能ではありません カスタマイズを行うことにより ArcGIS の豊富な機能を生かしたより高機能な GIS ソフトウェアを構築できます 手作業で行うと手間のかかる作業を自動化します ArcMap のメニューやボタンなどを使って作業をすると大変手間のかかる作業があります 目的応じたカスタマイズにより 複雑な操作が容易に実行できるようになります さらに 手作業ではできない空間演算を利用したフィーチャの作成なども可能になります プログラムを作ることにより ArcGIS の機能だけではなく データベースのアクセスや 作表といったいろいろな機能を追加することができます 例えば 地図上の選択に応じて データベースと結合してデータ表示するようなことが可能になります
カスタマイズの方法 DLL による方法ツールバー ArcMap 上のツールバーからカスタマイズ機能を起動する方法です プログラムは DLL( ダイナミックリンクライブラリ ) になります ツールバーに配置できるコントロールには次のものがあります ボタン機能を実行します コンボボックスリストから選択します ツールボタン押したあと地図上を選択するなどの操作を行い機能を実行します メニュープルダウンから機能を選択します テキストラベル任意の文字を表示します
カスタマイズの方法 DLL による方法ドッカブルウィンドウ ArcMap 上の TOC( テーブルオブコンテンツ ) のようなウィンドウで 移動も可能です ツールバーより多彩なコントロールを配置することができます ドッカブルウィンドウ移動可能
カスタマイズの方法 DLL による方法イベント応答 ArcGIS では イベントと呼ばれる処理の呼び出しが行われます イベントは次のような場合に発生します マッププロジェクトを開いたとき レイヤを追加したとき 地図が再描画されたとき エディタで追加 削除 編集が行われたとき DLL でこれらに対する応答を記述することができます 例えば エディタのイベントに応答し あるレイヤの特定の属性値に対する編集を禁止するといったことができます
カスタマイズの方法実行プログラムによる方法 単体の実行プログラムから ArcGIS の機能を呼び出すことができます ArcMap は開きません 独自のウィンドウが表示されます 一括処理などの機能を実現するには 実行プログラムによる方法が適しています 地図をウィンドウに表示するには 地図コントロールを使用します 単体実行プログラム 呼び出し ArcGIS 機能 入出力 フィーチャデータ
カスタマイズの方法コントロールによる方法 単体の実行プログラムのウィンドウに地図を表示 操作するコントロールを貼り付けます ArcMap とは 違った独自の GIS ソフトウェアを作成できます ArcGIS のコントロールには次の 2 種類があります Map コントロール ArcMap とほぼ同様の機能を実現できます 地図 属性の編集も可能です ランタイムライセンスは 有償です Reader コントロール 無償の閲覧用ソフト ArcReader と同様な機能が実現できます 地図 属性 凡例の編集はできません 拡大 縮小 移動など閲覧に必要な機能は実現できます ランタイムライセンスは 無償です 地図表示のためには Publisher エクステンションで pmf ファイルを作成する必要があります
カスタマイズ事例
イベント応答地図中心の住所表示 / 背景地図の入替 地図中心の位置を判定して住所を自動表示します 表示縮尺 表示位置により投影法を自動変更することも可能です 地図中心が他の都道府県に移動した場合 都道府県ごとにファイルが分かれている詳細地図レイヤのデータセットを自動的に入れ替えます
印刷カスタマイズ複数ページ印刷 / プレビュー タイトル等の付加情報を任意に追加できます 方位記号 標尺 縮尺文字凡例を自動配置できます これは プレビューウィンドウです表示範囲を変えた複数ページの印刷を行っていますプレビューを画面で確認してから印刷可能です用紙サイズ 向きも変更可能です
印刷カスタマイズ帳票との連携 帳票に貼り付けた地図の印刷ページ帳票に応じて移動 拡大 縮小も可能です 縮尺表示もできます 地図の印刷ページをメタファイル形式でエクスポートし Excel で作られた帳票に 貼り付けます 地図情報を組み合わせた帳票が作成できます 連続処理も可能です
凡例の自動作成 ArcMap の標準機能では フィーチャー数が非常に多いとき凡例を思い通りに作成できないことがあります この例では 日本全国の 1km メッシュのフィーチャーを使用して 気温 降水量などを色分けして表示し 画像ファイルにエクスポートする作業を自動化しています
編集機能のカスタマイズ属性入力ダイアログ ArcMap の標準編集機能でフィーチャーの追加を行うとき 同時に属性値も入力することができますが カスタマイズすることにより 属性入力を強制し より入力が容易になります
編集機能のカスタマイズネットワークデータの生成 編集 新規フィーチャーの作成 分岐点にポイントデータを自動生成します 既存フィーチャーの編集 河道のフィーチャー頂点を移動 既存の河道上に自動的にスナップさせます 移動に伴って接続する河道も自動的に移動します 道路 河道などのデータには 線データが必ず他の線と接続しているという性質があります この性質を保持して 編集を行うカスタマイズを行っています
編集機能のカスタマイズ隣接ポリゴンの生成 行政区画 流域 土地利用などのポリゴンは 隣接ポリゴンと線を共有するという性質を持っていますが 標準編集機能では 共有線もあらためて入力する必要があります カスタマイズにより 共有線を自動的に発生させ 隣接ポリゴンの入力が容易になります
距離計算サービスの応用 距離計算サービス ACT( アドバンスドコアテクノロジーズ社 ) ArcObjects を使用したプログラム インターネット 時間圏ポリゴン 距離計算サービスでは 2 点間の最短経路 時間距離 時間圏ポリゴン 巡回ルート計算などが可能です この例では 集落の中心から 30 分 60 分 90 分の時間圏ポリゴンを求めて シェープファイルに格納しています
フィーチャーの自動生成通勤ベクトル 遊佐町 八幡町 真室川町 酒田市 三川町 鶴岡市小国町 金山町 平田町 松山町 鮭川村 新庄市 庄内町 最上町 戸沢村 舟形町 大蔵村 大石田町 尾花沢市 村山市 西川町 寒河江市河北町 東根市 大江町 天童市 朝日町白鷹町長井市 川西町 中山町山辺町山形市 上山市南陽市高畠町 国勢調査の通勤データを使用して 市町村間の従業者の移動ベクトルを表すポリラインフィーチャーを自動作成しています ピンクのポリゴンは 従業者が集まる中心市の 30 分時間圏ポリゴンを示します 通勤移動が 30 分圏と深い関係があることがわかります 同様な手法は 買い物客の移動などに応用できます 飯豊町 0 2.5 5 10 15 20 キロメートル 米沢市 凡例 中心市起点 5.1-10.0 10.1-20.0 20.1-30.0 30.1-40.0 40.1 -
フィーチャーの自動生成トラクタルート 圃場の播種作業をトラクタで行う場合の想定ルートを 圃場ポリゴンから自動生成しています ルートとともに角度の大きな転回点もポイントデータとして生成しています 距離と転回点の個数から作業時間を推定し 色分けしています
JPGIS データの作成トポロジー構造の生成 JPGIS のポリゴンデータは 共有境界線 共有点を識別して構造化する必要があります この例では ArcView ライセンスで使用できるマップトポロジーを使用して 共有境界線 共有点を自動生成し ポリゴンを構成する共有線 共有点の情報を作り出します
ボロノイ ( ティーセン多角形 ) の生成と集計 流域の降雨量を求める手法で 任意の点の降雨はその点に最も近い観測所の雨量に等しいと見なす考え方で ティーセン法と呼ばれます 観測所ポイントデータから幾何学で ボロノイ分割 と呼ばれる多角形を作成して処理します この例では 多角形を作るとともに 流域ごとの集計も自動的に行っています 同様な手法は 商圏分析などにも応用できます
各種集計 49 49.1 48.8 47.3 46.8 49.4 46.6 46.1 45.9 48.9 47.3 45.1 49.28 49.22 49.07 48.92 48.77 48.62 48.46 48.31 47.98 47.82 47.65 47.48 47.32 47.15 46.98 46.82 49.38 49.28 49.26 48.95 48.65 48.43 47.92 47.61 47.47 47.13 46.97 46.63 49.51 49.41 49.31 49.28 49.14 48.99 48.84 48.49 47.99 47.42 47.24 47.12 46.95 46.78 46.62 46.45 49.56 49.48 49.31 49.28 49.19 48.95 48.55 48.05 47.53 46.92 46.86 46.76 46.44 46.27 49.36 49.27 49.21 49.24 49.26 49.26 49.05 48.61 48.11 47.61 47.03 46.55 46.48 46.39 46.25 46.09 49.15 49.16 49.17 49.17 49.18 49.18 49.15 48.67 48.17 47.67 47.14 46.53 46.17 46.01 49.08 49.09 49.11 49.12 49.13 49.15 49.15 48.72 48.23 47.73 47.23 46.64 46.03 45.79 45.72 45.63 48.83 48.87 48.93 48.97 49.01 48.68 48.26 47.79 46.74 46.14 45.53 45.41 45.35 48.52 48.54 48.57 48.61 48.64 48.67 48.69 48.37 48.01 47.64 47.27 46.85 46.24 45.64 45.03 45.9 49.4 47.64 49.13 46.51 49.24 49.21 48.95 49.15 49.25 49.25 48.94 49.01 49.16 49.15 48.99 48.63 48.47 48.45 48.36 48.27 48.16 47.54 46.97 46.61 46.32 45.47 47.31 46.92 47.44 46.34 46.44 48.88 47.28 47.32 49.4 45.7 49.13 49.58 49.47 48.82 45.31 46.01 46.28 46.64 47.2 48.4 46.11 44.96 48.51 48.46 48.01 48.35 44.63 47.9 47.25 49.04 48.74 48.44 48.14 47.58 49.31 46.92 空間的な重なりから ポリゴン属性を他のポリゴン単位で集計したり ポイント属性をポリゴン単位に集計したりできます 例は ポイント標高データからメッシュ標高を求めたものです
解析機能時間圏指標と時間距離 集落人口 DB 集落中心市時間距離 集落フィーチャ 集落高齢化率 集落時間圏ポリゴン 集落時間圏内事業所従業者数 メッシュ事業所統計 DB メッシュフィーチャ 時間圏 30 分内の事業所従業者数 ( 人 ) 300000 250000 200000 150000 100000 50000 高齢化率 40% 未満高齢化率 40% 以上 50% 未満高齢化率 50% 以上 60% 未満高齢化率 60% 以上 時間距離 事業所従業者数集落高齢化率の分析 0 0 20 40 60 80 100 120 中心市までの時間距離 ( 分 ) ArcGIS の空間演算機能を応用して 集落の分析を行った例です 中心市までの時間距離が 30 分以内の集落では 就業機会に恵まれ高齢化があまり進行していないことがわかります
シミュレーションとの統合入力データの作成 土地利用からメッシュの粗度係数を推定 メッシュ標高 その他必要なデータ 0 80 160 320 480 640 メートル 凡例土地利用林地果樹園水田畑裸地 二次元氾濫シミュレーションデータ 0 80 160 320 480 640 メートル 凡例
シミュレーションとの統合計算結果の表示 二次元氾濫シミュレーション結果 0 80 160 320 480 640 メートル 任意時刻の湛水深分布図の作成 0 80 160 320 480 640 メートル 凡例 時刻湛水深堤防崩落 66% 流量 5.2 時間後 2cm 未満 2-5cm 5-10cm 10-15cm 15-20cm 20-25cm 25-30cm 30-40cm 40-60cm 60-80cm 80cm- 80cm- 凡例 時刻湛水深堤防崩落 66% 流量 5.2 時間後 2cm 未満 2-5cm 5-10cm 10-15cm 15-20cm 20-25cm 25-30cm 30-40cm 40-60cm 60-80cm