QGISからWebマップを作成する方法【qgis2web活用ガイド】

QGISからWebマップを作成する方法【qgis2web活用ガイド】のアイキャッチ画像
目次

QGISで作成した地図をWebで公開できます。

この記事では、qgis2webプラグインを使ってインタラクティブなWebマップを作成する方法を解説します。


WebマップとQGIS

Webマップとは

ブラウザで表示できるインタラクティブな地図です。

特徴:

  • インストール不要で閲覧可能
  • ズーム・パン操作
  • クリックで情報表示
  • スマートフォン対応

QGISからWebマップを作る方法

方法 特徴
qgis2web プラグインで簡単出力
手動コーディング 柔軟だが知識が必要
GeoServer等 サーバー型、大規模向け

qgis2webのインストール

インストール手順

1. プラグイン → プラグインの管理とインストール
2. 「qgis2web」を検索
3. 「インストール」をクリック
4. インストール完了

動作確認

Web → qgis2web → Create web map
→ ダイアログが表示されればOK

基本的な使い方

ステップ1: QGISで地図を準備

1. 背景地図を追加(地理院タイル等)
2. データレイヤを追加
3. シンボル・ラベルを設定
4. 表示範囲を調整

ステップ2: qgis2webを起動

Web → qgis2web → Create web map

ステップ3: 設定

レイヤタブ:

・出力するレイヤにチェック
・ポップアップの設定
・クラスタリングの設定

外観タブ:

・タイトル
・検索機能
・レイヤ切り替え
・縮尺バー

ステップ4: プレビューと出力

1. 「Update preview」でプレビュー
2. 問題なければ「Export」
3. 出力先フォルダを選択
4. 完了

出力オプション

出力ライブラリの選択

ライブラリ 特徴
Leaflet 軽量、シンプル、おすすめ
OpenLayers 高機能、複雑

Leafletがおすすめ:

  • ファイルサイズが小さい
  • 動作が軽い
  • カスタマイズしやすい

データ形式の選択

Export タブ → Data export

・GeoJSON:ベクターデータをそのまま出力
・Minify GeoJSON:軽量化して出力

※ 大量データの場合は軽量化推奨

出力フォルダの構成

output_folder/
├── index.html      # メインHTMLファイル
├── css/
│   └── style.css   # スタイルシート
├── js/
│   └── script.js   # JavaScript
├── data/
│   └── layer.js    # GeoJSONデータ
├── markers/        # マーカーアイコン
└── images/         # 画像

カスタマイズ

ポップアップの設定

Layers タブ → レイヤを選択 → Popup fields

□ header:ヘッダーとして表示
□ inline:インラインで表示
□ no label:ラベルなし

フィールドごとに表示/非表示を選択

スタイルの調整

qgis2webはQGISのスタイルを反映しますが、一部制限があります。

対応するスタイル:

  • 単一シンボル
  • 分類(カテゴリ値)
  • 段階(数値範囲)
  • 単純なラベル

非対応・制限あり:

  • 複雑なSVGシンボル
  • 式によるスタイル
  • ルールベーススタイル(一部)

出力後の編集

生成されたファイルは直接編集できます。

index.html を編集:

<!-- タイトルの変更 -->
<title>カスタムタイトル</title>

<!-- CSSの追加 -->
<link rel="stylesheet" href="css/custom.css">

script.js を編集:

// 初期表示位置の変更
map.setView([35.6812, 139.7671], 13);

// レイヤオプションの変更
L.geoJSON(data, {
    style: customStyle,
    onEachFeature: customPopup
});

公開方法

方法1: 静的ホスティング

GitHub Pages:

1. GitHubにリポジトリを作成
2. 出力フォルダの内容をアップロード
3. Settings → Pages → 公開設定
4. https://username.github.io/repo/ で公開

Netlify:

1. Netlifyにアカウント作成
2. 出力フォルダをドラッグ&ドロップ
3. 自動で公開

方法2: 自社サーバー

1. 出力フォルダをサーバーにアップロード
2. Webサーバー(Apache, nginx等)で公開

例:
/var/www/html/webmap/
└── index.html

方法3: クラウドストレージ

Amazon S3:

1. S3バケットを作成
2. 静的ウェブサイトホスティングを有効化
3. ファイルをアップロード

トラブルシューティング

プレビューが表示されない

対処:

1. ネットワーク接続を確認
   → 背景タイルはオンライン必須

2. ブラウザを確認
   → Chrome, Firefox推奨

3. データサイズを確認
   → 大きすぎると表示されない

出力後に表示されない

対処:

1. ブラウザコンソールでエラー確認
   → F12 → Console

2. ファイルパスを確認
   → 相対パスが正しいか

3. CORSエラーの場合
   → ローカルサーバー経由で表示
   → python -m http.server 8000

スタイルが反映されない

対処:

1. QGISでシンプルなスタイルに変更
   → 単一シンボルで試す

2. シンボルサイズを確認
   → 小さすぎると見えない

3. 透明度を確認
   → 100%になっていないか

データが重い

対処:

1. ジオメトリを簡略化
   → QGIS: ベクタ → ジオメトリツール → 簡素化

2. 属性フィールドを削減
   → 必要なフィールドのみ出力

3. ベクタータイルを検討
   → 大規模データ向け

応用テクニック

複数地図の切り替え

// ベースマップの切り替え
var osm = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
var gsi = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png');

L.control.layers({
    "OpenStreetMap": osm,
    "地理院タイル": gsi
}).addTo(map);

フィルタ機能の追加

// 属性でフィルタ
function filterByAttribute(value) {
    layer.eachLayer(function(layer) {
        if (layer.feature.properties.type === value) {
            layer.setStyle({opacity: 1});
        } else {
            layer.setStyle({opacity: 0.2});
        }
    });
}

まとめ

Webマップ作成の流れ

1. QGISで地図を作成
2. qgis2webでプレビュー
3. 設定を調整
4. エクスポート
5. サーバーにアップロード
6. 公開

チェックリスト

□ 背景地図を設定した
□ レイヤのスタイルを設定した
□ ポップアップを設定した
□ プレビューで確認した
□ 出力ファイルをテストした
□ 公開先を準備した

関連記事


お問い合わせ

Webマップ作成についてのご相談は、お気軽にお問い合わせください。

お問い合わせはこちら →


最終更新: 2025年1月

この記事をシェア

関連デモ・ツール

技術選定からご相談ください

発注範囲が決まっていなくても、現在の業務と判断したいことから整理します。

相談内容を送る

GIS・AI・業務自動化に関するご相談は お問い合わせページ からお気軽にどうぞ。