D&I Blog

このブログでは、今までに培ってきた技術的なことや、得意としている地図のことなどについて、幅広く取り扱っていこうと考えています。積極的に新しいことにチャレンジしたいメンバーもいるので、そのようなトピックも扱っていきたいと思います。

D&I BLOG

To mind the creative destruction

QGIS2.X系による地図タイル画像(TMS)作成方法

はじめに

QGIS2.X系での地図タイル画像(TMS)を作成する方法について紹介させて頂きます。

準備するもの

地図タイル画像(TMS)を作成するためのプラグインインストール

  1. メニュー -> プラグイン -> プラグインの管理とインストールを選択します。
  2. 検索ウィンドウに Tile と入力します。
  3. 検索リストに表示された QTilesを選択します。
  4. インストールボタンを押下し、QTilesプラグインをインストールします。 f:id:d-and-i:20190824223138p:plain

QTilesプラグインの起動

  1. メニュー -> プラグイン -> QTiles -> QTiles を選択します。

QTilesプラグインの設定方法

ほとんどは初期設定で良いのですが、特筆して設定すべき項目について解説します。 設定が終われば、Runボタンを押下します。 f:id:d-and-i:20190824223707p:plain

Output

以下の3つより指定することができます。

  • File
  • Directory
  • NGM

Tileset Nameは、任意の名前をつけてください。

Extent

タイル画像作成範囲を以下の3つより指定することができます。

  • Canvas Extent
  • Full extent
  • Layer Extent

利用用途に応じて、上記3つの中から選択するようにしてください。

Minimum zoom

最小(広域)のズームレベルを指定してください。

Maximum zoom

最大(詳細)のズームレベルを指定してください。 なお、値を増やせば増やすほど、生成されるタイル画像が多くなります。地図上で大きく拡大する際には便利ですが、その分画像サイズが大きくなりますので、バランスを考えて指定してください。

Tile width

256固定としてください。

Tile height

256固定としてください。

QGIS3.X系による地図タイル画像(TMS)作成方法

はじめに

QGIS3.X系での地図タイル画像(TMS)を作成する方法について紹介させて頂きます。

準備するもの

地図タイル画像(TMS)を作成するためのプラグインインストール

  1. メニュー -> プラグイン -> プラグインの管理とインストールを選択します。
  2. 検索ウィンドウに Tiles と入力します。
  3. 検索リストに表示された Tiles XYZを選択します。
  4. インストールボタンを押下し、Tiles XYZプラグインをインストールします。 f:id:d-and-i:20190824215333p:plain

Tiles XYZプラグインの起動

  1. メニュー -> プロセッシング -> ツールボックスを選択します。
  2. QGISの右側に プロセッシングツールボックス が表示されますので、そのツリーリストにある Tiles XYZを展開し、 Generate XYZ tiles(Directory) をダブルクリックします。 f:id:d-and-i:20190824215424p:plain

Tile XYZプラグインの設定方法

ほとんどは初期設定で良いのですが、特筆して設定すべき項目について解説します。 設定が終われば、実行ボタンを押下します。 f:id:d-and-i:20190824215547p:plain

Extent (xmin, xmax, ymin, ymax)

タイル画像作成範囲を以下の3つより指定することができます。

  • キャンバス領域を使用
  • キャンバス上で領域を指定する
  • レイヤの領域を使う

利用用途に応じて、上記3つの中から選択するようにしてください。

Minimum zoom

最小(広域)のズームレベルを指定してください。

Maximum zoom

最大(詳細)のズームレベルを指定してください。 なお、値を増やせば増やすほど、生成されるタイル画像が多くなります。地図上で大きく拡大する際には便利ですが、その分画像サイズが大きくなりますので、バランスを考えて指定してください。

Tile width

256固定としてください。

Tile height

256固定としてください。

Output directory

生成するタイル画像の出力先ディレクトリを指定してください。

Output html (Leaflet)

生成したタイル画像を確認するためのHTMLファイルを生成する場合は、HTMLの保存先を指定してください。

外部端末からPostgreSQLに接続する方法

はじめに

GISでよく利用するShapeデータを、VM上のLinuxサーバに構築していたPostgreSQLへ格納していたのですが、データ確認を行う必要があった為、クライアントPCからQGISを用いて接続を試みたのですが、デフォルト設定では接続できませんでした。

f:id:d-and-i:20170403212125p:plain

接続できなかった理由

調べてみると、デフォルトでは

  1. 外部からのアドレス(ホスト名)、ポートがListenされていない。
  2. 接続する際の認証方式が、外部からの設定は行われていない。

ことが原因でした。

「1.」については、 postgresql.conf を修正することで、「2.」については、 pg_hba.conf を設定することで解決できるようになります。

実際の設定例

設定ファイルを修正

listen_addresses = '*'    # '*'を指定することで全てのアドレスから許可できるようになります。
                          # 他にIPアドレスの指定も行うことができます。
port = 5432               # 外部から接続を許可するためのポート番号を指定します。
  • /var/lib/pgsql/9.4/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
# ADDRESS -> all を指定することで、全てのアドレスを接続許可
# METHOD -> trust をしているすことで無条件で接続許可
host    all             all             all                     trust

PostgreSQLの再起動

$ sudo service postgresql-9.4 restart

最後に

今回紹介した方法は、開発環境下においての利用を想定していたので、セキュリティ面などは考慮に入れていません。実際の利用においては、用途に応じて、セキュリティを考慮に入れてくださいね。

yumのProxy設定

はじめに

先日、とある場所でサーバ設定作業(OSはCentOS6.8)を行なっていた時に、なにやら yum コマンドが正しく動かないことがありました。

少し調べてみると、設定作業をしていた環境はインターネツトに接続する際に、Proxyサーバを経由していることがわかりました。

しかしサーバ自体には、プロキシサーバへの接続設定はしてあるので、問題ないはずなのに・・・・

もしかして、

yumを使う上での設定ファイルがどこかにあって、その設定ファイルにProxyの設定を書く必要があるんじゃないか?」

ということが、頭をよぎりました。 で、調べて見たら ビンゴ

やはり、yumの設定ファイルにproxyの設定を書く必要がありました。

前置きが少々長くなりましたが、今回はyumを使う上でのProxy設定方法を紹介します。

yumのProxy設定方法

  • ターゲットOS:CentOS 6.8
  • 設定対象ファイル: /etc/yum.conf

設定方法

〜 省略 〜

proxy=[proxyへのアドレス]
proxy_username=[proxyのユーザ名]   # 必要無い場合は本設定は書かなくても良い
proxy_password=[proxyのパスワード] # 必要無い場合は本設定は書かなくても良い

〜 省略 〜

さいごに

ちょっとした知識の紹介でしたが、これを読んで頂いた方のお役に立てたら幸いです。

CentOS7でのサービス起動・停止方法

はじめに

CentOS6以前においては、httpdなどのサービスの操作などを行うコマンドとして、 /etc/init.d/httpd start/etc/init.d/httpd stop を使用していましたが、CentOS7以降はこれらのコマンドが systemctl コマンドを使用するように変更になっていたようでした。

本記事では、CentOS7以降で使用する systemctl コマンドの使い方について整理しました。

systemctlの基本的な使用方法

基本的な使用方法は、以下に示すように意外と簡単です。

  • サービスの開始

    $ systemctl start サービス名.service

  • サービスの停止

    $ systemctl stop サービス名.service

  • サービスの再起動

    $ systemctl restart サービス名.service

  • サービスの状態確認

    $ systemctl status サービス名.service

  • サービスの自動起動設定解除

    $ systemctl enable サービス名.service

  • サービスの自動起動設定解除

    $ systemctl disable サービス名.service

  • サービスの自動起動設定確認

    $ systemctl list-unit-files

なお、各コマンドの一番後ろにつけてある .service については、つけなくてもコマンドとしては正しく動作するようです。

さいごに

サービス操作については、そう頻繁に行うものではありませんが、いざ操作したいという時には、コマンドの早見表があれば便利だなと感じましたので、本ブログの記事にさせて頂きました。

このブログを読んでいただいた方に対して、少しでも役に立てたら幸いと思います。

macOSのSSHポート変更

はじめに

macOS(Sierra)でのSSHポートの変更方法について紹介します。

SSHポートの変更手順概要

  • リモートログイン機能を無効にする。
  • /etc/services ファイルの内容を編集する。
  • リモートログイン機能を有効にする。

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを外します。 f:id:d-and-i:20161216223123p:plain

/etc/services ファイルの内容を編集する。

最初に、/etc/servicesを変更する前に、念の為バックアップをとっておきます。

$ sudo cp -p /etc/services /etc/services_V001

つぎに、SSHで使用するポート番号を以下の様に変更します。

<変更前>

ssh         22/udp     # SSH Remote Login Protocol
ssh         22/tcp     # SSH Remote Login Protocol

<変更後>

ssh         60000/udp     # SSH Remote Login Protocol
ssh    [f:id:d-and-i:20161216223123p:plain]     60000/tcp     # SSH Remote Login Protocol

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを入れます。 f:id:d-and-i:20161216221158p:plain

さいごに

macOSでは、意外と簡単にSSHのポート番号を変更することができるんです。

macOSでのSSH接続パスワード認証の無効化

はじめに

macOS(Sierra)へSSHで接続するにあたり、公開鍵認証を用いるため、パスワード認証を無効化した際の手順を紹介します。

SSHパスワード認証無効化設定概要

  • リモートログイン機能を無効にする。
  • /etc/ssh/sshd_configファイルの内容を編集する。
  • リモートログイン機能を有効にする。

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを外します。 f:id:d-and-i:20161216223123p:plain

/etc/ssh/sshd_configファイルの内容を編集する。

最初に、/etc/ssh/sshd_configを変更する前に、念の為バックアップをとっておきます。

$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_V001

つぎに、パスワード認証を無効化するために以下の様に変更します。

<変更前>

#PasswordAuthentication yes
#ChallengeResponseAuthentication yes

<変更後>

PasswordAuthentication no
ChallengeResponseAuthentication no

リモートログイン機能を有効にする。

「システム環境設定」->「共有」->「リモートログイン」にチェックを入れます。 f:id:d-and-i:20161216221158p:plain

さいごに

今回は、シンプルにパスワード認証を無効化するための設定について紹介しましたが、/etc/ssh/sshd_configファイルには様々な設定項目がありますので、セキュリティに注意しながら他の項目の役割も把握しておきたいですね。