V4: プラグイン(認証機構)・外部連携
拡張可能なプラグイン機構と認証方式の導入に加え、データ形式・外部サービス連携を大きく拡充しました。
🧩 プラグイン機構・認証方式
起動前の認証プラグイン(auth-selector)と起動後の通常プラグイン(plugin-loader)を分離した拡張機構です。認証方式は 0〜7(認証なし / ローカル / 簡易パスワード / Cloudflare Pages / Cloudflare Workers / Cloud Run / Cloud Run IAP)から選択でき、公開環境でも ID プロバイダの認証・承認の内側に置けます。
プラグインは window.kasugaiApi を通じて地図を操作します。plugins.json は利用可能プラグインのカタログで、.kasc(インスペクタ)の plugin: <id> | key=value ... 行でプロジェクトごとに有効化できます(起動したプラグインのレイヤーはプロジェクトスコープで、切替・行削除で停止。常駐させたい場合のみ "auto": true)。AI が生成したプラグインはまず IndexedDB(ブラウザローカル草稿)に保存され、.kasp でエクスポート可 → レビュー後にローカル版で PLUGIN/ へ公開、という「開発→草稿→公開」の昇格ルートを持ちます。高権限操作(プラグイン公開等)はフロント側で必ず確認ダイアログを挟みます。詳細は 認証とプラグイン を参照してください。
同梱プラグインの例として 不動産情報ライブラリ連携(PLUGIN/reinfolib)があります。plugin: reinfolib | datasets=price,shelter のように .kasc で宣言すると、表示範囲に連動して国土交通省の不動産情報ライブラリ API から XYZ タイル形式の GeoJSON(取引価格ポイント・指定緊急避難場所・駅別乗降客数・用途地域)を取得し、/api/reinfolib 中継(API キーはサーバー側 REINFOLIB_API_KEY または localStorage.reinfolibApiKey の BYO キーで注入)経由で表示します。各データセットは同梱の QML スタイル(PLUGIN/reinfolib/qml/)でシンボル・分類色分け・駅名ラベル付きで描画されます。
🗃️ クエリ系・大規模ベクター
CesiumJS ネイティブ非対応の形式は「ブラウザ側でデコード → GeoJSON へ正規化 → 既存のベクター描画経路に流す」が基本ルールです。これによりレイヤー一覧・表示切替・フォーカス・ベクトル検索・属性パネルが新形式でも自動的に機能します。
geoparquet:— hyparquet(CDN 遅延ロード)で WKB/ネイティブ GEOMETRY を GeoJSON 化。常に全件読み込みflatgeobuf:— 公式 JS リーダーでレスポンスを ReadableStream のまま逐次デコード。全件読み込みだが全件バッファリングはしないgpkg:— sql.js(SQLite WASM) を module Worker で動かし GPKG を SQLite として直接開く。where=/limit=/columns=/bbox=auto(既定 ON。GPkgBinary エンベロープで JS 範囲判定)対応。QGIS の layer_styles(QML) を読んで既定スタイルに適用duckdb:/sql:— DuckDB-WASM で SQL 絞り込みしてから GeoJSON 化。:bboxプレースホルダで表示範囲連動、proxy=onでローカルサーバーの /api/fetch 経由取得(Range/HEAD 転送対応)
クエリ系レイヤーは「検索は常に全件検索・表示はバッファの表示範囲のみ」の設計で、⏷フィルター編集による対話的な条件変更にも対応します。ベクター描画件数の上限・primitive バッチ描画(render=primitive)で大規模データにも対応します。形式の使い分けは データ形式 を参照してください。
🗺️ Google Maps Platform 連携
管理(⚙)→ Google Maps で API キーを登録すると、Geocoding / Places を使ったハイブリッド検索と、Street View リンク・候補ラインオーバーレイが利用できます。検索は国土地理院/Yahoo/Google を切り替えて使えます。
外部エージェント呼出し(管理(⚙)→ AI → エージェント にエンドポイント URL を設定し、チャット入力を POST {message, project, camera, layers, history} → 応答 {reply, actions} の actions をチャットツールとして実行)で外部構築エージェントと接続できます。詳細は 【API】内蔵AI(Google 連携・AI) を参照してください。