(1) 情報表示機能 1つ目として専用ツールを作成するにあたり よく見受けられる専用画面を使用した情報表示機能 ( 以降 : 情報表示機能と記す ) を作成した これは 図形を選択すると 関連する情報が専用画面に表示される機能である 4. プラグインツールの開発手法 4.1 プラグインモジュールの開

Similar documents
はじめに 面的評価支援システム操作マニュアル ( 別冊 ) 国土地理院数値地図 25000( 空間データ基盤 ) 変換編 は 国土地理院の HP よりダウンロードした数値地図 25000( 空間データ基盤 ) の地図データを 面的評価支援システム 用に変換するツールの使用方法についてまとめたものです

GIS利用クイックチュートリアル

帳票ツールインストール手順 帳票ツールダウンロードの手順を実行しても正常に帳票が出力されない 場合のみ 以下の手順を実行してください 株式会社テラソフトデザインの公式サイトへアクセスします URL 左側メニューより ダウンロード をクリックしま

CubePDF ユーザーズマニュアル

RS-MS1A ~オフライン地図について~

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

インストールマニュアル

< E B D E A837D836A B D834F E696CA82F08F4390B3292E786C7378>

C#の基本

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

目次 マップとレイヤについて... 2 地図操作... 3 背景図の選択... 5 地図への情報表示... 6 地図への情報表示 ( 属性情報 ) 計測 メモ 凡例一覧の表示 印刷 概観図の利用 操作例... 24

Microsoft Word - KML変換操作方法_fujii改.doc

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

太陽光発電の積雪荷重設計支援ツール 取扱説明書 国立研究開発法人産業技術総合研究所 太陽光発電研究センターシステムチーム 作成日 :2012 年 6 月

データの作成方法のイメージ ( キーワードで結合の場合 ) 地図太郎 キーワードの値は文字列です キーワードの値は重複しないようにします 同じ値にする Excel データ (CSV) 注意キーワードの値は文字列です キーワードの値は重複しないようにします 1 ツールバーの 編集レイヤの選択 から 編

農業・農村基盤図の大字小字コードXML作成 説明書

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

<4D F736F F D208D C8FEE95F18DEC90AC A B D836A B2E646F63>

Microsoft Word - XOOPS インストールマニュアルv12.doc

管理機能編目次 目次 1 管理機能 1) 物件データ登録依頼 2 2) 物件情報検索 8 3) ユーザー情報照会 10 4)WEB 依頼検索 15 管理機能編 1

eYACHO 管理者ガイド

Taro-QGIS 3.2

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

本文中の記号の意味 本文中で使用している記号の意味について以下に示します システムの操作上または処理の手続き上において 特に注意していただきたい事項を記載しています 記載内容を必ずお読みください システムの操作上または処理の手続き上において 参考にしていただきたい事項を記載しています 必要に応じてお

ログインする ブラウザを使ってログイン画面 を表示します ユーザー名とパスワードを入力し ログイン をクリックします メールアドレス : パスワード : メールアドレスのパスワ

Microsoft Office Visioによる 施設管理について

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

Field Logic, Inc. 標準モード 3D モデル作成 配置編 Field Logic, Inc. 第 1 版

アクセス履歴の確認 アクセス履歴の確認 名刺データへのアクセス履歴を 日単位で確認または月単位でファイル出力できます 日単位の履歴を確認する 名刺データへの過去 1 ヵ月のアクセス履歴を 日単位で確認できます 1 名刺管理画面を表示し 名刺管理 アクセス履歴 の順にクリックします 名刺管理画面の表示

Microsoft Word - EndNoteWeb( _.doc

(3) このファイルは 申込書の 5 枚複写分 ( 1 営業用 2 調査会社用 3 委託工事会社用 4 電気工事会社 ( 控 ) 5 お客さま ( 控 ) と 電気工事士 測定器 の計 7 シートから構成されています 申込書作成に関しては 1 営業用 のシートに入力することで 2~5 のシートにも反

間取りプレミアム ライセンス削除 移行手順 利用中のパソコンより作図画面を表示し [ ヘルフ (H)] [ ライセンス削除 ] をクリックして下さい 間取りプレミアムのデータバックアップ 間取りプレミアムのデータバックアップが必要な場合は ライセンス削除前に データ移動 を行って下さい ライセンス削

カルテダウンロード 操作マニュアル

200_CAD(画面回りの機能)の基本操作

【バーコード作成】マニュアル 第1版

目次 はじめに 講義室とは Windows OS 用 ネットライブレッスン インストール手順 1. プログラムインストール前の確認

Inet-Builder Client 操作説明書

目次 はじめに 講義室とは p.2 Windows OS 用 ネットレッスン インストール手順 1. プログラムインストール前の確認

PowerPoint Presentation

プロセス出力 ダイアログが表示されます 以下のいずれかを指定します オーバーレイ作成 ボタンをクリックし 新規にオーバーレイを作成します プロセス操作の結果作成されたアイテムは 新規オーバーレイに作成されます 既存のアイテムは削除され プロセス操作の結果作成されたアイテムに置き換えられます 既存の編

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

03 Podium Walkerのインストール方法およびアンインストール .docx

ブラウザ Internet Explorer 7 の設定について 第3版

TunesGo (Win 版 ) ガイド Chapter1: 製品のインストール 1-1 製品のダウンロード 1-2 製品のインストール 1-3 製品の登録 Chapter2: データの転送 2-1 ios デバイスを PC に接続する 2-2 デバイスのメディアを itunes に転送 2-3 デ

生存確認調査ツール

PDF Convertor for mac スタートアップガイド

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

Microsoft Word - winscp-LINUX-SCPを使用したファイル転送方法について

Proselfの利用方法

Microsoft Word - 01_CommonMPインストール解説書.doc

(Microsoft Word - Word\216\300\217K\212\356\221b1.doc)

改訂履歴

M7_DWG.doc

読取革命Ver.15 かんたん操作ガイド

<91808DEC90E096BE8F91322E786C73>

Ver.0 目次. はじめに.... 証明書の発行 ( ダウンロード ) 手順... 付録 A. ルート証明書無しでの証明書の発行 ( ダウンロード ) 手順... 5 付録 B. ブラウザの設定... Copyright 04 SECOM Trust Systems CO.,LTD. All Ri

アプリ版居宅介護支援システム簡単操作マニュアル 2017 年度版 総合案内 サポートデスク Copyright(C) 2010 ITSS All Rights Reserved.

LCV-Net ファイルコンテナ ユーザーマニュアル

IME( 日本語入力システム ) の確認 変更方法 / プロパティ確認の手順 ************************************************************************************ ドキュメント目次 IME( 日本語入力システム )

Moodleアンケートの質問一括変換ツール

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

目次 はじめに ツールのインストール ソフトウェアを起動する 画像ファイルの選択... 7 位置の調整... 8 背景色の設定 進捗バーの設定 パスワード設定 ユーザー情報の設定 設定

2. FileZilla のインストール 2.1. ダウンロード 次の URL に接続し 最新版の FileZilla をダウンロードします URL: なお バージョンが異なるとファイル名が

ランタイム版 Pro 版共通 症例登録システム 2018/12/11 Q & A 目次 1. 起動時のエラー... 2 Q11. " ファイル jsgoe_data3.fmp12 を開くことができません" と表示されます (Windows) 2 Q12. ショートカットから起動できません (Wind

2/17 目次 I. はじめに... 3 II. 操作手順 (Controlの場合) 断面の作成 寸法測定 異なる断面間の寸法測定 繰り返し処理...11 III. 操作手順 (Verifyの場合) 断面の作成... 1

Inet-Builder Client 操作説明書

はじめに SDP Generator は オーバーレイに対応した JVC カメラに画像をインポートするデータファイル (SDP ファイル ) を生成するためのアプリケーションです 本アプリケーションを使用することで スコアボードのチーム名に チームロゴや画像化された多言語の文字をカメラ映像に表示する

やってみようINFINITY-製品仕様書 品質評価表 メタデータ 編-

産能大式フローチャート作成アドインマニュアル

PDFオートコンバータEX

カルテダウンロード 操作マニュアル

WebReportCafe

目 次 1. ログイン システムの操作 データ検索 検索 CSV 出力 台帳表示 位置確認 詳細表示 データ編集

ふれんずらくらく流通図面マニュアル

BBB_マニュアル(聴講者用)

Python によるジオプロセシング スクリプト入門

Transcription:

QGIS を用いたプラグインツールの作成手法について エンジニアリング本部国土基盤情報部建設情報グループ内田照久 1. はじめに総務省では 災害発生時にも行政情報の業務を継続するため 効率的で災害に強い電子自治体の実現に向けて取り組んでいる 自治体における地理情報システム ( 以降 GIS と記す ) の整備状況は 平成 27 年 4 月 1 日現在 都道府県では 46 団体 (97.9%) 市区町村では 1402 団体 (80.5%) で整備済みである (1) 都道府県では1 団体を除いて全国で整備済であるが 市区町村では未だ 20% が未整備である その主な原因は 財政状況 である 一般的な有償型 GIS を導入するには 1ライセンスあたり ソフトのライセンス費用が数十万円 ソフト年間保守料が数万円必要となる さらに専用システム開発となると仕様によっては 数百万は必要であり 財政規模の小さな自治体には相当な負担になる 一方 オープンソース GIS は有償型 GIS と比べると高度な解析機能では劣るが 一般的な操作をするには十分な機能を備えている また簡単なプラグインを作成することで複雑な処理を少ない操作にて実現することも可能である 最近では 過去に作成した GIS のリプレースにあたり 少しでも費用を抑えるため オープンソース GIS にてシステム構築したいという要望も増えてきている 上記の状況を踏まえて 本稿ではオープンソー ス GIS を利用した簡単なプラグインツール開発の手法について紹介することとした 2. 開発環境の整備 2.1 使用ソフトウェアについて GIS はオープンソース GIS としては最も有名な QGIS を使用する 開発言語は広く普及していて 記述や理解 維持 配布が簡単である Python にて行う 統合開発環境は Eclipse を使用する 2.2 インストール (1) QGIS のインストール QGIS のインストールは OSGeo4W サイト ( https://trac.osgeo.org/osgeo4w/wiki/osgeo4w _jp) よりダウンロードしてインストールを行う 通常 C:\OSGeo4W\ フォルダにインストールされ C:\OSGeo4W\bin\qgis.bat を実行すると QGIS が起動する (2) Eclipse のインストール Eclipse は pleiades 版 (http:// mergedoc.osdn..jp/) を使用する また Python にて開発を行うため プラグインとして Pydev のインストールも行う 3. プラグインツールの概要 3.1 ツールの基本機能本稿では以下の2つのプラグインツールを作成した その作成方法について紹介する 29 1/6

(1) 情報表示機能 1つ目として専用ツールを作成するにあたり よく見受けられる専用画面を使用した情報表示機能 ( 以降 : 情報表示機能と記す ) を作成した これは 図形を選択すると 関連する情報が専用画面に表示される機能である 4. プラグインツールの開発手法 4.1 プラグインモジュールの開発準備について QGIS のプラグインは保存場所が以下の 2 カ所 に決まっており そのフォルダにソースを置くことで プラグインとして認識する 共通プラグイン保存先 C:\OSGeo4W\apps\qgis\python\plugins ユーザープラグイン保存先 C:\Users\ ユーザー名 \.qgis2\python\plugins また プラグインの雛形は Plugin Builder を使用して生成することができる QGIS を起動後 プラグインメニューより Plugin Builder をクリックすると設定画面が表示される メニューバーに Plugin Builder が表示されない場合は プラグインの管 図 1 情報表示機能画面イメージ 理とインストール より新規に追加する (2) 図形拡縮機能 2つ目としては現時点では QGIS の基本機能にない図形編集の機能で 選択した図形の縦または横のどちらか一方向のみにドラッグすると図形が合わせて拡縮する機能 ( 以降 : 図形拡縮機能と記す ) を作成した これは 選択したポリゴンの外接矩形の辺上の表示される点 ( ) を縦または横のどちらか一方向のみにドラッグすると図形が合わせて拡縮される機能である B A b a 図 2 図形拡縮機能画面イメージ 図 3 Plugin Builder 設定画面 30 2/6

Plugin Builder 設定画面にて必要な項目を入力 ( プラグイン名 :ogiplugintest と設定 ) すると プラグイン保存場所にフォルダ (C:\OSGeo4W\apps\ qgis\python\plugins\ogiplugintest) とモジュール一式が生成される を行うための新規 UI(ogiPlugin_InfoView.ui と命名 以降 : 情報表示画面と記す ) を追加し 写真を表示するための Label コントロールと 属性情報を表示する TableWidget コントロールを配置する 図 6 QT Designer 図 4 Plugin フォルダ次にフォルダ内にある resource.qrc より resource.py を生成する C:\OSGeo4W\OSGeo4W.bat を実行後 ogiplugintest フォルダに移動し Make と実行すると resource.py が作成される 新規に作成した情報表示画面は py 形式に変換する C:\OSGeo4W\OSGeo4W.bat を実行後 ogiplugintest フォルダに移動し pyuic4ogiplugin_infoview.ui -o ogiplugin InfoView.py と実行すると ogiplugin_infoview.py ファイルが作成される 図 5 コマンドプロンプト画面以上で開発を行う準備が整った 4.2 情報表示機能の作成 (1) 表示画面 (GUI) の作成 図 7 コマンドプロンプト画面 (2) コードの作成 Eclipse を起動し ogiplugintest フォルダ内の ogipugintest_dialog.py を表示し 必要なモジュールをインポートする はじめに画面の作成を行う Python では QT Designer というツールが用意されていて それを使用して画面を作成する C:\OSGeo4W\\bin\ designer.exe を実行すると QT Designer が起動する 先ほど作成したフォルダより ogiplugintest _dialog_base.ui を開く ogiplugintest_dialog_base.ui ( 以降 : メニュー画面と記す ) は 2 つの機能を呼 び出すためのボタンを配置する 続いて情報表示 図 7 Eclipse 31 3/6

メイン画面に配置した 2 つのボタン押下時の関 数を生成し 呼び出すよう設定する 情報表示ボタンクリック時の関数 def ButtonInfoView_Set(self): 図形編集ボタンクリック時の関数 def ZukeiKakuShuku_Set (self): ボタン押下時に呼び出す方法 self.buttonmenu1.clicked.connect(self.butt oninfoview_set) 次に地図上の図形情報を取得するため Qgs MapTool クラスを継承したクラスを作成する (2) 作 成したクラス内に選択した図形情報を取得するた めの canvaspressevent( マウスクリック ) 関 数を生成し 選択した図形情報を取得するコード を記述する <canvaspressevent 関数 > 1 クリックした座標 ( ピクセル値 ) を取得し 地理座標に変換 2 座標と重なる図形 ( 空間検索 ) を取得 図形選択用クラスとマウスクリック関数 class ogiselecttool(qgsmaptool): def canvaspressevent(self, event): クリック座標を地理座標に変換する方法 self.canvas.getcoordinatetransform(). tomapcoordinates(event.pos()) 空間検索の方法 QgsFeatureRequest().setFilterRect( 検索範囲 ) 続いてダイアログ表示用のクラスを生成し 選択 した図形情報を表示するコードを生成した < ダイアログ表示用のクラス > 1 選択図形より属性情報を取得 2 取得した属性情報を tablewidget に表示 3 Label に画像を設定 ダイアログ表示用のクラス class InfoViewDialog(QDialog, Ui_InfoView): 属性情報の取得方法 feature.attributes()[ フィ - ルト 番号 )] tablewidget への表示方法 self.ui.tablewidget.setitem( 行番号, 列番号 QTableWidgetItem( 表示する文字列 )) Label に画像を設定する方法 self.pixmap = QPixmap( ファイルパス ) self.ui.label.setpixmap(self.pixmap) 表示用クラスを呼び出すよう設定することで 選択 した図形の情報が表示される 以上で情報表示機 能のコード生成が完了する 今回は情報を画面上 に表示するだけであったが Excel などの帳票に 出力する機能も作成可能である 4.3 図形拡縮機能の作成 (1) コードの作成 指定した図形を拡縮するため新しく Qgs MapTool クラスを作成する (2) 作成したクラスは選 択した図形に対して拡縮を行うため 情報表示機 能 時に作成した図形選択クラス内の canvaspress Event 関数より呼び出すようにした 図形拡縮を行うクラス class ZukeiKakuShukuSet (QgsMapTool): canvaspressevent 内に以下を記述する tool = ZukeiKakuShukuSet (self.canvas) self.iface.mapcanvas().setmaptool(tool) 次に選択した図形の外接矩形とその辺上に表 示される点 ( ) を表示するコードを生成した 表示図形は 一時的な図形であるため外接矩形 は QgsRubberBand クラスを点 ( ) は QgsVertexMarker クラスを使用した (2) 最後に canvaspressevent 関数内にダイアログ 32 4/6

外接矩形を行う QgsRubberBand クラス self.rubberband.reset(qgis.polygon) self.rubberband.setlinestyle( 線種を指定 ) self.rubberband.setcolor( 色を指定 ) self.rubberband.addpoint( 左下座標値, False) self.rubberband.addpoint( 左上座標値, False) self.rubberband.addpoint( 右上座標値, False) self.rubberband.addpoint( 右下座標値, True) self.rubberband.show() 点 ( ) を表示す QgsVertexMarker クラス vmarker.seticontype(qgsvertexmarker.icon_b OX) vmarker.setcolor( 色を指定 ) vmarker.setcenter( 点の座標値 ) 以下のような外接矩形と点 ( ) が表示される 以上で図形拡縮機能のコード生成が完了した 選択座標を取得し 共通変数に保存 def canvaspressevent(self, event): 選択座標 = self.tomapcoordinates(event.pos()) 移動座標を取得 def canvasmoveevent(self, event): 移動座標 = self.tomapcoordinates(event.pos()) 図形の変更方法 (X 座標変更の時 ) 移動距離 = 移動座標.x - 選択座標.x 変更座標値 = QgsPoint(x + 移動距離, y) pr = Layer.dataProvider() pr.changegeometryvalues({feature.id() : 変更座標値 ) Layer.commitChanges() 外接矩形及び点 ( ) の変更外接矩形は QgsRubberBand クラス 点 ( ) は QgsVertexMarker クラスを用いて 変更座標値にて再作成を行う 4.4 インストール及び動作確認 (1) インストール QGIS を起動後 プラグインメニューより プラグインの管理とインストール を選択するとプラグイン設定画面が表示される ogiplugintest を選択す 続いて図形拡縮クラス内に canvaspressevent 関数を生成し 選択した点 ( ) の座標を取得し共 ると プラグインメニュー及びツールバーアイコン に ogiplugintest が追加される 通変数に保存しておく 移動距離に合わせて図形を変更することから canvasmoveevent 関数を生成し 図形を変更するコードを生成した <canvasmoveevent 関数 > 1 移動座標を取得 2 選択した点 ( ) との移動距離を算出 3 選択図形の各座標に移動距離を加味する 横方向に移動した場合は各 X 座標を縦方向に移動した場合は各 Y 座標のみを変更する 4 外接矩形及び点 ( ) も移動距離に合わせて再作成を行う 図 8 プラグインメニュー及びプラグイン設定画面 33 5/6

(2) 動作確認 1 情報表示機能の動作確認メニューまたはアイコンより ogiplugintest を選択すると メニュー画面が起動する 情報表示 ボタンを選択後 情報表示したい図形を選択すると 情報表示画面が正しく表示されたことを確認した 2 図形拡縮機能の動作確認メニュー画面より 図形編集 ( 拡縮 ) ボタンを選択後 編集したいポリゴン図形を選択すると 外接矩形とその辺上に点 ( ) が表示される 移動したい点を指定後 拡縮したい方向にマウスを移動すると図形が変更されることを確認した 5. まとめ最後に有償型 GIS とオープンソース GIS の開発における それぞれの長所と短所を述べる 1 有償型 GIS の長所有償ではあるが 開発サポートが充実している 2 サンプルソースが充実している 3 有償型 GIS の短所初期導入費用がかかる 開発サポートを受けるためには別途 年間サポート料が発生する 4 オープンソース GIS の長所初期導入費用 年間サポート料が無償 他のユーザーが作成したツールのソースが公開されているため 参考にできる 5 オープンソース GIS の短所不明箇所の調査に時間を要する サンプルソースが体系だってまとめられていないため 検索に時間を要する なお 以前は英語の解説サイトがほとんどで 日本語の解説サイトはあまりなかったが 最近では日本語のサイトもいくつか見受けられるようになり 今回作成した2つの機能は その日本語の解説サイトを参考 (2)(3)(4) にすることで ほとんどがカバーできた 当社では今後 技術をさらに磨きオープンソー ス GIS 分野のツール開発にも積極的に取り組んで いく予定である < 参考文献 > 1) 地方自治情報管理概要 ~ 電子自治体の推進状 況 ( 平成 27 年 4 月 1 日現在 )~ ( 総務省 ) http://www.soumu.go.jp/denshijiti/060213_02.html 2) 月の杜工房 - QGIS 豆知識 http://mf-atelier.sakura.ne.jp/mf- atelier/modules /tips/software/qgis/ 3) だら $ らいぶらりぃ ~/QGIS はじめてのプラグイン作成 http://www.areanine.gr.jp/~banjo/qgis/plugin/ind ex.html 4) PyQGIS 開発者用 Cookbook http://docs.qgis.org/2.2/ja/docs/pyqgis_developer cookbook/ 34 6/6