一覧に戻る

MapTiler公式QGISプラグインでベクトルタイルを素敵に表示しよう

#Python#foss4g#QGIS#vectortile#Maptiler

https://www.maptiler.com/news/2020/06/say-hello-to-the-new-qgis-plugin/

はじめに

6月下旬にリリース予定のQGIS3.14には、ベクトルタイルのネイティブ対応という目玉機能があります。実際には開発者向けビルドの3.13は既に公開されていて、その機能を試す事が出来ます。この開発は英国のLutra Consulting社により行われ、QGISオフィシャルスポンサーである弊社もクラウドファンディングという形で支援しました。

さて、このQGIS3.14のリリースにあわせ、弊社のビジネスパートナーであるスイスのMapTilerと協力し、同社が展開する地図配信サービスMapTiler CloudをQGIS上で利用するためのプラグインを開発しました。本記事ではプラグインの概要と、その機能・使い方を紹介します。

6/23追記

https://www.qgis.org/ja/site/forusers/download.html QGIS3.14 Piがリリースされました、ぜひベクトルタイル機能とあわせて本プラグインをご利用ください!

プラグイン紹介

https://github.com/maptiler/qgis-maptiler-plugin このプラグインはオープンソースで開発され、機能追加・不具合報告・修正などが活発に行われています。プラグインのコア部分の開発は弊社が行い、主要機能であるベクトルタイルのスタイリング周りを両社で協力し実装しており、現在も随時改良しています。

https://plugins.qgis.org/plugins/qgis-maptiler-plugin/ 既にQGISプラグインリポジトリに登載されているため、お使いのQGISでシームレスにダウンロード可能です(ベクトルタイル機能実装前のバージョンでは一部機能が制限されます)。

概要

  • QGIS3.x系のプラグインです(ver3.14未満では一部機能に制限があります)
    • 3.4以降での動作を確認しています
  • MapTiler Cloudで提供されているスタイルや、任意のstyle.jsonなどを地図表示出来ます
  • ネイティブでは未対応の、ベクトルタイルのスタイリングに対応しています
  • 地名などのキーワードで位置を検索するジオコーディング機能を利用出来ます

スクリーンショット

※地図はすべてベクトルタイルをスタイリングしたものです

JP MIERUNE Streets + Geocoding API

JP MIERUNE Gray

JP MIERUNE Dark

Toner

Satellite

導入

インストール

1.QGISプラグインリポジトリからダウンロード・インストールします。

2.QGISアプリケーションを再起動してインストールを完了します。完了すると、ブラウザにMapTilerアイコンが追加されます。

APIキーの登録

MapTiler Cloudの地図表示およびGeoCoding APIの利用には、MapTilerアカウントを取得して入手できるAPIキーが必要です。登録し入手したキーは、以下のように登録します。

※この画面でベクトルタイルを優先して使用する設定を変更出来ます

機能紹介・使い方

地図表示

MapTiler Cloud公式スタイル

デフォルトでツリーに用意されているスタイルのほか、MapTilerが公式で提供しているスタイルをすべて表示する事が出来ます。ここではJP MIERUNE Streetsを表示してみましょう。

1.ツリーにスタイルを追加

2.プロジェクトにレイヤーを追加 ※QGIS3.14未満では「Add as Raster」のみが有効です。

任意のstyle.jsonかtiles.json

MapTiler Cloudのスタイルだけではなく、任意のstyle.jsonやtiles.jsonの読み込みにも対応しています。今回は私が作った地理院ベクトルタイルのroadとOSMラスターを重ねたstyle.jsonを表示してみます。

出典:国土地理院、 ©️OpenStreetMap contributors

Geocoding API

MapTiler Geocoding APIを利用して、キーワードから位置を検索する事が出来ます。 プラグインをインストールしたら「MapTiler Geocoding API」と書かれたツールバーがQGISに追加されているはずです。もしなければ画像のとおり再表示します。

※「パネル」メニューでMapTilerをクリックしてチェックする

ジオコーディングを実行

ツールバーにキーワードを入力してエンターキーを押下すると検索します。結果が一覧表示されるので、位置を知りたいアイテムをクリックすると、そのアイテムの領域へ地図が自動で移動します。

終わりに

まだまだ課題はありますが、QGISでジオコーディングができ、ベクトルタイルをスタイル表示できるこのプラグインは、手前味噌ながらとても便利だと思いますので是非使ってみてください(その際はMapTilerのアカウント登録も一緒に!)。

個人的な話ですが、弊社を弊社と呼ぶようになったのはこの春からの話で、最初にアサインされたプロジェクトがこのプラグイン開発でした。業務のなかでオープンソースの開発に関われた事は間違いなく幸運であり、ひとりのコミッターとしても大きな経験になったと感じています。

開発のなかでも実感しましたが、MapboxのStyleをQGIS上で表現する事は容易ではなく、たとえばラスター画像と見比べてみるとまだまだ改善の余地があります。またOSやバージョンなどの条件による未知の不具合があるかもしれません。繰り返しですが、本プラグインはオープンソースです、なのでどなたでもソースコードを入手でき、修正や改善をコミットする事が出来ます。オープンソースにおいては、開発のみならずイシュー報告も重要な貢献であり、歓迎します(現在、開発はissueベースで進行しているので、不具合報告などはリポジトリのissueまでお願いします)。