GeoServerでグラフ表示

GeeoServerではExtensionを追加してグラフ表示が可能

GeoServerのダウンロードサイトを開き、 Archivedタブをクリックしてダウンロード対象のGeoServerのバージョンを選択。
Chart Symbolizerを選択してgeoserver-2.10.1-charts-plugin.zipをダウンロード。

解凍してjarファイルを以下のフォルダにコピー

C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\geoserver\WEB-INF\lib

GeoServerを再起動してレイヤ「USA Population」のスタイルをGeoServer Trainingに従って作成したスタイルに変更する。

参考サイト

GeoServer Training

ベースとなったgoogle chart

GeoServer chart extension

QGIS3 plugin おさらい

ログの出力

from qgis.core import *

QgsMessageLog.logMessage(“__init__”, ‘test plugin’, Qgis.Info)

メッセージレベルの定数が変更

ダイアログのカスタマイズ

QT Creatorでtest_plugin_dialog_base.uiを開きボタン「btnTest」を追加

通常はQT Creator上でbtnTestのシグナルとスロットの設定を行う。

今回はプログラムで対応。

test_plugin_dialog.pyを編集

class TestPluginDialog(QtWidgets.QDialog, FORM_CLASS):
    def __init__(self, parent=None):
        """Constructor."""
        super(TestPluginDialog, self).__init__(parent)
        # Set up the user interface from Designer.
        # After setupUI you can access any designer object by doing
        # self.<objectname>, and you can use autoconnect slots - see
        # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
        # #widgets-and-dialogs-with-auto-connect
        self.setupUi(self)
        self.btnTest.clicked.connect(self.pushButton)

    def pushButton(self):
        self.close()

以上の編集を終了したらQGIS再起動で動作確認(makeは不要)

pyQt4の頃はself.btnTestではなくself.ui.btnTestだったような

スロットの前には@pyqtSlot()を付けたような

レイヤの一覧を出力

ボタンが押されたらレイヤの一覧をログに出力

    def pushButton(self):
        for layer in QgsProject.instance().mapLayers().values():
            QgsMessageLog.logMessage(layer.name(), 'test plugin', Qgis.Info)

QGIS3のプラグイン

QGIS2からQGIS3に変更されたことに伴い、プラグインに変更があったので再度確認!

開発環境のセットアップ

※環境はWin10

Qt Creatorのインストール

QTのインストーラー「qt-unified-windows-x86-3.0.5-online.exe」をダウンロードしてインストールを実行

インストールするファイルはとりあえず最小限とする。

QTにアカウントを作成

Python3をインストール

Python3-3.7.0-amd64.exe( Windows x86-64 executable installer)をダウンロードして実行。

インストールが完了したらバージョンを確認して正しくインストールされていることを確認

pyqt5をインストール

pip3コマンド(python3のパッケージ管理システム)を使ってインストール

GNUのmakeコマンドをインストール

Make for WindowsのサイトよりComplete package, except sourcesをダウンロードしてデフォルトのフォルダ(C:\Program Files(X86)\GnuWin32)にインストールしC:\Program Files(X86)\GnuWin32\binにPATHを通す。

以上で環境の構築は終了

とりあえず、Plugin Builderを起動してサンプルとなるPlugin(今回はべたなTest Plugin)を作成

作成したPluginフォルダをカレントにしてmakeコマンドを実行

makeコマンドの出力結果

pyrcc5 -o resources.py resources.qrc

pyrcc5コマンドでQtのリソースファイルをPythonファイルに変換している。
resources.qrcの内容

<RCC>
    <qresource prefix="/plugins/test_plugin" >
        <file>icon.png</file>
    </qresource>
</RCC>

以上のファイルをプラグインのフォルダに配置

C:\Users\ユーザー名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins

QGISを起動するとプラグインが追加されている

参考にしたサイト

Quick Guide to Getting Started with PyQGIS 3 on Windows

合同会社 緑IT事務所のサイト

QGIS3 wiki Some hints for porting QGIS 2 plugins to the new API of QGIS 3.

Porting QGIS plugins to API v3 – Strategy and tools

stackexchange Make QGIS python plugin for both versions 2.x and 3.x?

書籍 The PyQGIS Programmer’s Guide

QGIS 3 Plugin folder location

JpnStdMeshImportプラグインをQGIS3.0で動くように修正しました

PyQGIS 開発者用 Cookbook ※QGIS2.18の頃の資料

GitHubのリポジトリをローカルにClone

前回申し込んだGitHubのリポジトリをローカルにクローンする。

基本的にはgit for windowsをインストールしてgitlabのプロジェクトを操作に記載した内容でOK。
今回は既にGitLabのリポジトリへの接続環境が作成されているPC上にGitHubのリポジトリへの接続環境を構築する。
GITHUBもGITLABと同様にSSHキーを必要とするため以下に従って作成。(保存するファイルはデフォルトではなくgithub_kernel_rsaに変更)

C:\Git\usr\bin>ssh-keygen -t rsa -C 'メールアドレス'
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/tarumi/.ssh/id_rsa): /c/Users/tarumi/.ssh/github_kernel_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/tarumi/.ssh/github_kernel_rsa.
Your public key has been saved in /c/Users/tarumi/.ssh/github_kernel_rsa.pub.
The key fingerprint is:
省略
C:\Git\usr\bin>

なぜかファイル名が文字化けしていたので修正

GitHubのサイトにSSHキーを登録

GItHubのサイトの「your profile」を表示

「Edit Profile」ボタンを押す

「SSH and GPG keys」を選択し「New SSH Key」ボタンを押す

github_kernel_rsa.pubの内容を貼り付ける

C:\Git\etc\ssh\ssh_configを以下に従って編集
※この設定は複数のGITリポジトリ(GITLABとGITHUB)とアクセスするために設定する

Host gitlab
    User git
    Port 22
    HostName gitlab.com
    TCPKeepAlive yes
    identitiesonly yes
    identityFile /C/Users/tarumi/.ssh/id_rsa

Host github
    User git
    Port 22
    HostName github.com
    TCPKeepAlive yes
    identitiesonly yes
    identityFile /C/Users/tarumi/.ssh/github_kernel_rsa

github上のリポジトリをローカルにクローン

今回はC:\githubhomeディレクトリ以下にローカルリポジトリを作成していく。

通常(ssh_configの設定を使用しない)はgithubのリポジトリサイトを表示し「clone or download」ボタンを押しsshのURLを表示し

以下のコマンドでgithub上のリポジトリをローカルにクローンする。

git clone git@github.com:組織名/test.git

今回(ssh_configの設定を使用)は以下のコマンドでクローンする

git clone git@github:組織名/test.git

上記で指定したgithubはssh_configのHostに指定した値

C:\githubhome>git clone git@github:組織名/test.git
Cloning into 'test'...
Enter passphrase for key '/C/Users/tarumi/.ssh/github_kernel_rsa':
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

リポジトリのフォルダに移動して以下のコマンドでgitへの接続ユーザーの設定を行う

C:\>cd githubhome
C:\githubhome>cd test
C:\githubhome\test>git config --local user.email 'メールアドレス'
C:\githubhome\test>git config --local user.name 'ユーザー名'
C:\githubhome\test>git config --local core.quotepath off

引数に–localを付けたときはローカルリポジトリのフォルダ内のみで有効な設定として保存される。

設定した内容はローカルリポジトリ内の.gitフォルダに保存される

GITHUBをTEAMで始める

弊社でも社内リソースの管理にいよいよGITHUBを一部導入にあたり、各種設定をメモ。
※ローカル環境には既にGITLABへの接続環境が既に構築済

GITHUBへの申し込み

最初に個人としてGITHUBみ申し込み

その後GITHUB画面上の「New Organization」を選択

組織名、請求書送付先のメールアドレスを入力。

今回は会社で使用するのでTeamを選択して支払い情報を入力してOrganizationの作成は終了

この時点では自分以外のメンバーは登録しない。

最初にデフォルトのポリシーで基本全てのメンバーはリポジトリへの権限をなくします。

※デフォルトではすべてのメンバーは全てのリポジトリーへの閲覧権限を持っている

Organizationの設定ページ-Member Privilegesページを表示

Repository permissionsのOrganization membersをNONEに設定

リポジトリの作成

「new repository」メニューを選択

OwnerにOrganizationを指定しリポジトリ名を入力、スコープを指定して「Create Organization」を選択

TEAMの作成

OrganizationのTOPページよりTEAMタブを表示して、「New Team」をクリック

Team名を入力し、Team visibilityをSecretに設定し「Create Team」を選択

以上でTeamの作成は終了

Teamにメンバーを追加

Teamのページを開き、「members」のページを開く

「Add Member」をクリック

メンバーを入力してメンバーの追加は終了

リポジトリの権限設定

Teamにリポジトリの権限を設定

リポジトリの設定ページを開く

「Collaborators & teams」ページを表示

Teamの権限を設定

以上でGITHUBサイト上の設定は終了