今回はPythonを使用した簡単なカスタマイズ例をご紹介します。
以前の記事(第3回)でもPythonを使用したカスタマイズ例を簡単にご紹介しましたが、今回はもう少し掘り下げてご紹介します。
インフォマティクスでは、国内で約36,000のお客様に利用されているGIS(地理情報システム)製品SIS(エスアイエス)をご用意しております。
SISの最新カタログをダウンロードする >>
目次
Pythonとは
Pythonはプログラミング言語の一つです。テキストエディタでもプログラムを作成することができ、他のプログラミング言語と比べて文法がシンプルでわかりやすいといわれています。
プログラミング言語と聞くと難しそうと感じる方も多いかもしれませんが、SIS Mapシリーズの基本機能でできないことでも、コードを少し記述するだけで実行できる場合があり便利な機能です。
Pythonカスタマイズプログラムの実行方法
今回は「Python in SIS」という、SIS内部に組み込まれたPythonの機能を使用するカスタマイズ手法をご紹介します。
以下の2通りの方法があります。
- プログラムコントロールバーに直接コードを入力する *1
- 「*.py」形式のスクリプトファイルを読み込み、定義された関数を実行する *1
いずれの場合も、「表示」タブの「表示/プログラム」をチェックして(図1)、プログラムコントロールバーを表示します。(図2)
そして、プログラムコントロールバーにコードを記述します。(図2の赤い四角部分) *2
図1:「表示」タブの設定
図2:「プログラム」コントロールバー
*1 SIS 8.0 プログラミングマニュアル P.36参照
*2 SIS 8.0 プログラミングマニュアル P.35参照
では、Pythonを使用したサンプルで実際の動作を見てみましょう。
選択アイテムの頂点座標を取得する
「1.」の方法で、選択した1つのアイテムの頂点座標を取得して、プログラムコントロールバーに表示します。
すべてのオーバーレイのブラシの透過度を「0」にする
デフォルトのブラシには透過度が設定されています。
その設定を1つ1つコマンドで透過度「0」( 不透過)に変更するのは面倒です。
「2.」の方法で、SISサポートページで公開されているプログラム「OverlayBrushAlpha.py」を使用すれば、すべてのオーバーレイのブラシの透過度を簡単に「0」に変更することができます。
サンプル コード |
|
説明 | オーバーレイのブラシ「_brush$」プロパティの値を取得します。 RGBAのAの値を「0」(不透過)に変更して、オーバーレイのブラシプロパティに設定します。 |
実行方法 |
|
実行結果 |
ラインアイテムを複数のポリゴンアイテムで切断する
行政界と重なる道路中心線のラインアイテムを行政界のポリゴンアイテムで切断して抽出する作業には、「外側削除」コマンドを使用しますが、抽出するアイテムを選択しながら何度も操作しなければなりません。
ここでも「2.」の方法で、SISサポートページで公開されているプログラム「SplitLinebyPolygon.py」を使用すれば、ラインアイテムとポリゴンアイテムのあるオーバーレイを指定して一括で抽出することができます。
サンプル コード |
|
説明 | ポリゴンアイテムにジオメトリが交差するラインアイテムを抽出して、「編集」タブの「ジオメトリ/ 外側削除」コマンドと同等の処理を、ポリゴンアイテム数分繰り返します。 |
実行方法 | 例えば、以下のように「Line」オーバーレイにラインアイテムが、「Polygon」オーバーレイにポリゴンアイテムがあるとします。この場合、SplitLine(polygon_overlay_pos,line_overlay_pos)で指定する「polygon_overlay_pos」は「1」、「line_overlay_pos」は「0」になります。
|
実行結果 |
*3 SIS 8.0 プログラミングマニュアル P.37 参照
おわりに
今回ご紹介したサンプルも含め、Pythonのサンプルプログラム集を、SISサポートページのFAQ で公開しています。
SISサポートページにログインしていただき、FAQ のID「1075」をご覧ください。
FAQで公開しているサンプルプログラムは、今後も追加していく予定です。ぜひ業務にご活用ください。
SIS Desktopシリーズ 製品情報
https://www.informatix.co.jp/sis/
GISソフトをお探しなら
GISソフトをお探しの方、現在お使いのGISに課題を感じている方は、ぜひGIS(地理情報システム)製品SISをご利用ください。無償版もご用意しています。
SISの資料をダウンロードする >>
GISやAI機械学習を使った業務システムの構築に関するご相談を承っています。お気軽にお問い合わせください。
<地図データ出典>国土地理院 基盤地図情報
※この記事は、GIS NEXT第62号に掲載された記事を編集したものです。