QGISからWebマップ

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

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

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

WebマップとQGIS

Webマップとは

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

特徴

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

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

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

qgis2webのインストール

インストール手順

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

動作確認

確認方法

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

基本的な使い方

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

準備

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

ステップ2: qgis2webを起動

Web → qgis2web → Create web map

ステップ3: 設定

レイヤタブ:

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

外観タブ:

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

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

手順

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

出力オプション

出力ライブラリの選択

ライブラリ 特徴
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 を編集:

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

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

script.js を編集:

javascript
// 初期表示位置の変更
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:

手順

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

トラブルシューティング

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

対処

  • ネットワーク接続を確認 → 背景タイルはオンライン必須
  • ブラウザを確認 → Chrome, Firefox推奨
  • データサイズを確認 → 大きすぎると表示されない

出力後に表示されない

対処

  • ブラウザコンソールでエラー確認 → F12 → Console
  • ファイルパスを確認 → 相対パスが正しいか
  • CORSエラーの場合 → ローカルサーバー経由で表示(python -m http.server 8000)

スタイルが反映されない

対処

  • QGISでシンプルなスタイルに変更 → 単一シンボルで試す
  • シンボルサイズを確認 → 小さすぎると見えない
  • 透明度を確認 → 100%になっていないか

データが重い

対処

  • ジオメトリを簡略化 → QGIS: ベクタ → ジオメトリツール → 簡素化
  • 属性フィールドを削減 → 必要なフィールドのみ出力
  • ベクタータイルを検討 → 大規模データ向け

応用テクニック

複数地図の切り替え

javascript
// ベースマップの切り替え
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);

フィルタ機能の追加

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

まとめ

Webマップ作成の流れ

作成の流れ

  • QGISで地図を作成
  • qgis2webでプレビュー
  • 設定を調整
  • エクスポート
  • サーバーにアップロード
  • 公開

チェックリスト

確認項目

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

関連記事

お問い合わせ

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

  • Webマップ作成相談
  • 地図公開支援
  • GISコンサルティング

お問い合わせはこちら

最終更新: 2025年1月