保存と書き出し
原本の .copc.laz は、どの経路でも書き換わりません。 編集と所見はサイドカーという別ファイルに残します。
自動保存
編集はデータセット単位で localStorage に自動保存され、 同じデータを開き直すと復元されます。ブラウザを閉じても消えません。
ただしこれは端末とブラウザに紐づく手元の控えです。 成果物として渡す・別端末で続きをやるなら、下のサイドカーに書き出してください。 協働のサーバ側には永続化がなく、全員退出でルームは破棄されます。
サイドカー
✎ 編集 パネルの「保存(.oniyanma.json)」で <dataset>.oniyanma.json をダウンロードします (コマンド: saveEdits)。読込は同じパネルの「読込」から。
中身は Command ログとデータセット署名です。
{
"format": "oniyanma-edits",
"version": 3,
"datasets": [{ "name": "kasado.copc.laz", "pointCount": 95169313, "bounds": [/* 実座標 AABB */] }],
"frame": { "offset": [/* x,y,z */], "alignYaw": 0 },
"crs": { "epsg": 6669, "verticalDatum": "orthometric" },
"commands": [/* hide / delete / reclassify / colorOverride … 各コマンドが actor と、あれば batch を持つ */],
"entries": { "FindingType": [/* … */], "Finding": [/* … */], "Batch": [/* … */] }
}| キー | 役割 |
|---|---|
datasets | 版の不一致を検出するための軽量な署名(名前・点数・実座標 AABB)。巨大ファイルの全ハッシュは取らない |
frame | 述語の座標が何基準かの定義。scene = Rz(-alignYaw)·(real - offset) |
crs | 座標参照系の識別(記録のみ・再投影はしない) |
commands | 非破壊編集のログ。各コマンドが発行者を持つ |
entries | 所見・所見の型・束(version 2 で所見、version 3 で束を追加)。束の説明は→ 非破壊編集 |
読み込みが拒否されるとき
サイドカーは、条件が合わなければ適用せずに理由を出します。 黙って別の点に編集を当てるほうが有害だからです。
| 表示 | 意味 |
|---|---|
| 別データ用の編集の可能性があります(署名不一致) | datasets の署名が現在のデータと合わない |
| 座標フレームが違うため適用しませんでした | frame が違う。同じ順序でデータを読み込み直す |
| 座標系(CRS)が違うため適用しませんでした | crs が違う |
| 座標フレームの記録が無いサイドカーです | 古い形式。別フレームなら位置がずれる可能性がある、という警告 |
| 新しい版のサイドカーです | 保存した版がこのアプリより新しい。古い版で開くと編集履歴を失うので読み込まない |
| サイドカーの形式が不正です | JSON が壊れている / 形式が違う |
述語の座標は整列フレーム基準なので、frame が無い・違うサイドカーを当てると、 同じ条件が別の点を選んでしまいます。ここが照合の要点です。
古い版のサイドカーは移行してから読み込まれます(edit/migrate.ts)。 新しい版を古いアプリで開くことだけはできません。
選択点の書き出し
▚ 選択 パネルの「書き出し」、またはコマンド exportSelection。CSV(既定)と GeoJSON を選べます。
await oniyanma.execute('exportSelection', { format: 'geojson' })- 出るのは実座標 (m) と classification と RGB です
- resident 基準(表示中の LOD サンプル)です。寄るほど点数が増えます
- 削除済みの点は除外され、
excludedDeletedに件数が返ります - ファイルのダウンロードに加えて、戻り値にも中身が入ります (小さければ全文、大きければ先頭 2000 文字のプレビュー)。 AI はファイルダイアログを見られないので、返り値に入っていないと成果を確認できないためです
所見の書き出し
exportFindings で CSV / GeoJSON に出します。 既定は公開版のみ(発注者に渡せる形)、view: 'draft' で下書きも含みます。 → 所見を起票する
ビュー状態の共有
編集ではなく「いまの見え方」を渡すなら、📁 データ の「共有リンクをコピー」です。 データ URL・カメラ・カラーモード・点サイズ・EDL・グリッド・断面が URL のハッシュに載ります。 → URL パラメータ