5. 技術資料

内蔵 HTTP サーバー(補助機能)

QGIS 内で動く軽量 HTTP サーバー。配信パッケージのライブ参照と 起動 API の受け皿です(v3.29.0 で OGC サービスは廃止)。

エンドポイント 内容
/kasugai .kasc+DATA/ エクスポート+Canvas 登録・起動(?engine=・?install=1)
/export-data/<rel> 直近エクスポート物(.kasc/DATA/ 等)の配信
/<engine>/ インストール済み KASUGAI Canvas web/ の静的配信フォールバック
/present プレゼン用ページ。OpenLayers ベースで QGIS キャンバスをウィンドウ共有(視聴者ごとの独立ズーム/パン/回転、キャンバス回転も再現)
/present/state キャンバス状態 JSON(Canvas 側追従モード用)
/screenshot 現在のキャンバス表示の PNG(回転反映、w/h でサイズ指定可。extent/screen/bbox/rot でズーム範囲描画、X-Map-Extent/X-Map-Corners 応答ヘッダ付き)
/received 受領パーマリンク履歴
パネルの「共有」タブ — プレゼン共有ボタン、受領パーマリンク選択、MACアドレス認証の設定欄
「共有」タブ — /present のプレゼン共有・受領パーマリンク・MACアドレス認証

パーマリンク・External Control(従来機能)

パネルの「パーマリンク」タブ — パーマリンク生成ボタン、生成されたURLとURLコピー、移動先パーマリンクの貼り付け・移動欄
「パーマリンク」タブ — パーマリンク生成・コピーと受信 URL によるナビゲート

ネットワーク機能

エンドポイント一覧

パス 種別 内容
/kasugai JSON KASUGAI Canvas へエクスポート・登録(?engine= で起動エンジン、?install=1 で未インストール時の取得)
/export-data/<rel> file エクスポート産物(.kasc/DATA/)の配信
/<engine>/ HTML インストール済み Canvas web/ の静的配信フォールバック
/present HTML プレゼン用ウィンドウ共有ページ(OpenLayers。視聴者ごとの独立ズーム/回転対応)
/present/state JSON キャンバス状態(追従モード用)
/screenshot PNG 現在のキャンバス画像(extent/screen/bbox/rot でズーム範囲指定可)
/received HTML 受信パーマリンク履歴
/qgis-map permalink パーマリンクのパス(ページは返さず受領記録・ナビゲートに使う)

API 経由の呼び出し

同じ機能を API 経由でも呼べます:

geo_suite との連携

本プラグインは geo_suite プロジェクトの一部として開発されています。

両方を組み合わせることで、QGIS プロジェクトをそのままエンドユーザーに配布できるシステムを構築できます。

動作環境

KASUGAI Canvas 連携(詳細)

/kasugai エンドポイント(またはファイル出力のみのパネル Export ボタン、 ▶ Open ボタン、Live Driver 経由の kasugaiExport ブリッジ)で、 QGIS プロジェクトを KASUGAI Canvas(Cesium / OpenLayers / MapLibre / Leaflet / GSI Maps のマルチエンジン地図アプリ)へ送出します。

curl "http://localhost:8089/kasugai?engine=openlayers"
# → {"ok":true,"url":"http://localhost:8510/?project=...&engine=openlayers","dir":"...","layers":N,"tiles":M,"engine":"openlayers"}

詳細は SPEC_JP.md の「KASUGAI Canvas 連携」節を参照。

設定ダイアログ — KASUGAI Canvas のインストール先、ホスト版エンジン(kasugai-canvas-web)のチャンネル、ベースマップグループ名の設定項目
設定ダイアログ(パネル右下の歯車)— KASUGAI Canvas インストール先・ホスト版チャンネル・ベースマップグループ

開発・カスタマイズ

アーキテクチャ

geo_webview/
├── plugin.py              # メインプラグイン
├── panel.py               # UI パネル
├── panel_base.ui          # パネルレイアウト(Qt Designer)
├── server_manager.py      # HTTP サーバー管理・ルーティング(/kasugai・/export-data/・/present・/screenshot 等)
├── http_server.py         # HTTP 応答の低水準送信ユーティリティ
├── kasugai_export.py      # KASUGAI Canvas 連携(.kasc+DATA/ 生成・登録・起動)
├── scale_zoom.py          # スケール/ズーム換算
├── settings_dialog.py     # 設定ダイアログ
└── bridge.py              # AI/外部制御用ブリッジ

詳細仕様

技術仕様の詳細は SPEC.md / SPEC_JP.md を参照してください。

開発手順

  1. SPEC.md で仕様を確認
  2. 主要ファイルを把握
  3. QGIS で動作確認
  4. 変更 → テスト → コミットのサイクル

翻訳対応

ソース言語は英語。i18n/<lang>.json に9言語 (de, es, fr, hi, it, ja, pt, ru, zh)の翻訳カタログを持つ。 JSON を直接編集する。未登録の文字列は英語にフォールバック。

# カタログ未登録の文字列を検出
python ../../scripts/i18n_tool.py check

セキュリティ注意事項

⚠️ 重要: 本プラグインは社内 LAN での利用を前提としています。