KASUGAI Canvas v6.17.0

【WebGIS】ブラウザ WebGIS — 外部ホストの .kasc + DATA/ を CDN エンジンで再生(インストール不要)

1. 概要 — エンジンとデータは分離

KASUGAI Canvas は エンジン(プレイヤー本体)とデータ(.kasc + DATA/)が分離した設計です。 エンジンは CDN(kasugai-canvas-web)が配信し、 データは任意の静的ホストに置くだけで、?kasc=<URL> で再生できます(サーバーレス・インストール不要)。 CDN はエンジン本体のみを配信し、プロジェクトのカタログは持ちません — 変動するプロジェクト一覧は各データホスト側が持つ設計です。

flowchart LR
  QGIS["QGIS + geo_webview
エクスポート"] subgraph HOST["データホスト(静的ホスト)"] DATA[".kasc + DATA/
…/&lt;id&gt;/"] PJ["projects.json【複数指定する場合は必須】
群マニフェスト
→ エンジンの選択肢・一覧に使用"] end CDN["CDN(kasugai-canvas-web)
GitHub Pages エンジン配信
stable/・unstable/・6エンジン"] WEB["ブラウザ WebGIS
?kasc=&lt;.kascのURL&gt;"] QGIS -->|"アップロード"| DATA CDN ==>|"エンジンを配信"| WEB DATA -.->|"?kasc= で指定"| WEB

CDN(kasugai-canvas-web)とは

エンジン本体を静的配信する GitHub Pages ホストです。エンジンだけを配信し、 プロジェクトデータ(projects/)は同梱しません — カタログは各データホストが持ちます。

要素内容
ベース URLhttps://yamamoto-ryuzo.github.io/kasugai-canvas-web/(ルートは stable/ へリダイレクト)
stable/安定版・既定チャンネル(リリースに合わせて同期)
unstable/開発版チャンネル(kasugai_canvas 最新の web/ を追従)
エンジンcesium(メイン・フル機能)/ maplibre / openlayers / leaflet / gsimaps(.kasc プレイヤーとして互換)/ navara(試験的・写実3D)
正本・同期正本は kasugai_canvas の web/。python tools/publish_cdn.py --channel stable|unstable で同期(CDN 側の直接編集はしない)

詳細は kasugai-canvas-web ガイド を参照してください。

2. 導入・セットアップ — インストール不要、データを置くだけ

ブラウザ WebGIS に「インストール」はありません。閲覧側は CDN の URL をブラウザで開くだけで動きます。セットアップに相当するのはデータ側(.kasc + DATA/)を静的ホストへ置く作業で、GitHub Pages など任意の静的ホストを使えます。

配置するファイル — 必須3点セット

再生に必要な最低限は .kasc ファイル1つ、一覧・選択肢に出すには projects.json と <id>/ フォルダを加えた3点が必須です。

(データホスト)/
  • projects.json必須群マニフェスト。一覧・選択肢に使用。未登録時は単独プロジェクトとして <id> 等を名に使う
  • <id>/必須フォルダ名 = プロジェクトID。?kasc= URL は <id>/kasugai_canvas.kasc を前提
    • kasugai_canvas.kasc必須CDN エンジンの ?kasc= に指定する URL(これだけで動く)。書式は .kasc 設定仕様
    • project.json任意プロジェクト名の表示に使用
    • DATA/条件付き相対参照データがある場合のみ
ファイル必須条件
<id>/kasugai_canvas.kasc 必須 ?kasc= に渡す URL は この .kasc ファイルの URL そのもの。DATA/ 等の相対参照はこの URL のフォルダ基準で解決されます。全レイヤーが URL 直参照ならこれだけで動きます。書式の詳細は .kasc 設定仕様 を参照
<id>/DATA/ 条件付き .kasc 内で DATA/... 等の相対参照しているローカルデータがある場合のみ(.kasc と同じフォルダに置く)
<id>/project.json 任意 単独プロジェクトの表示名として優先(一覧・複数選択では projects.json の title が優先)。無ければ <id>・ファイル名が使われる
projects.json への登録 必須(一覧・選択肢に出すため) 群マニフェスト。?kasc= で開いたエンジンが .kasc の祖先として読み、同一ホスト上の他プロジェクトをドロップボックスに並べます。未登録・無タイトルの単独プロジェクトは <id>(フォルダ名)をプロジェクト名として扱います

追加手順(ファイル順に設定)

  1. projects.json【必須】 — ホスト直下の群マニフェストに、プロジェクトを1エントリ追記します。
    [\n  { "id": "default", "title": "サンプルプロジェクト" },\n  { "id": "<id>", "title": "<プロジェクト名>" }\n]
    未登録でも単独プロジェクトとしては動きますが(<id> 等が名に使われる)、一覧・選択肢に出すには登録が必須です。
  2. <id>/【必須】 — フォルダ名 = プロジェクトID で作ります。?kasc= の URL は …/<id>/kasugai_canvas.kasc になる前提です。
  3. <id>/kasugai_canvas.kasc【必須】 — QGIS プラグイン geo_webview の Export 出力をそのまま置きます。このファイルの URL を CDN エンジンの ?kasc= に指定するのが再生の本体で、これだけ置けば動きます。
  4. <id>/project.json(任意) — 表示名を付けたい場合に {"title": "<プロジェクト名>"} と書きます。単独プロジェクトではこの名前が優先され、複数・一覧では projects.json の title が優先されます(無ければ <id>・ファイル名で表示)。
  5. <id>/DATA/(条件付き) — .kasc が DATA/... 等の相対参照を持つローカルデータがある場合のみ、.kasc と同じフォルダに置きます。
  6. 公開 — 静的ホストへアップロードするだけです(GitHub Pages 等)。

再生 URL の形式

https://yamamoto-ryuzo.github.io/kasugai-canvas-web/<stage>/<engine>/?kasc=<ホスト上の .kasc URL>
要素値意味
<stage> stable(既定)/ unstable CDN の配信チャンネル。stable=安定版・unstable=開発版
<engine> cesium / maplibre / openlayers / leaflet / gsimaps / navara 再生に使う描画エンジン。cesium がメイン(3D・フル機能)、他は同じ .kasc を読む互換プレイヤー。navara は試験的エンジン(写実3D・要 vendor 同期)
?kasc= .kasc ファイルの URL(要 URL エンコード) ホスト上のプロジェクトを指定。相対参照は .kasc のある URL 基準で解決

3. 公開デモサイト(実例)

いずれもブラウザ上の WebGIS として動く実例です(Cloudflare/Cloud Run 版は web/ 自前配信+認証・/api/* を付加した構成)。

▶ デモサイトを開く(CDN ホスト版・インストール不要)

デモは kasugai-canvas-web(GitHub Pages)上の静的配信版です。設定の保存・サーバー経由の一部機能は無効ですが、地図閲覧・Fly など主要機能はそのまま試せます。

▶ デモサイトを開く(Cloudflare Pages・認証方式3)

Cloudflare Pages 上のデモです。認証方式 3(Pages Functions + KV)で動作しており、ログイン ID/パスワードはいずれも demo です。

▶ デモサイトを開く(Cloudflare Workers・認証方式4)

Cloudflare Workers 上のデモです。認証方式 4(Worker + KV・全ファイル認証ゲート)で動作しており、未ログインでは静的ファイルも取得できません。ログイン ID は admin、パスワードは admin123 です。

▶ デモサイトを開く(Cloud Run・認証方式5)

Cloud Run 上のデモです。認証方式 5(認証のみ)で動作しており、ログイン画面が表示されます。

4. 注意点・制限

  • .kasc と DATA/ は同じフォルダに置く — 相対参照は .kasc のある URL を基準に解決されます。
  • CORS — エンジンは別オリジンからデータを fetch するため、ホスト側は Access-Control-Allow-Origin が必要です(GitHub Pages は * が既定でそのまま使えます)。
  • スナップショット方式 — .kasc はエクスポート時点の状態です。QGIS 側の編集は再エクスポートで反映してください。
  • 大きなファイル — GitHub Pages の1ファイル上限は 100MB です。大容量データはオブジェクトストレージ等を URL 直参照で使い分けてください。
  • ローカル機能は無効 — 設定のサーバー保存・ファイル書き込み・rclone 連携・AI ブリッジハブ内蔵などは 【アプリ】ローカルアプリ 側の機能です(ブリッジは 別途 bridge-hub を導入すれば WebGIS でも使えます)。

5. 関連リンク