今回開発したエディタは、IIIF対応の高解像度画像上で任意の座標を記録・管理するためのWebベースのツールです。URLパラメータで画像を指定でき、様々な研究プロジェクトで利用可能な汎用的な座標記録ツールとして設計されています。
https://youtu.be/UqPo5Xrkin8

主要技術スタック#
- OpenSeadragon : IIIF画像ビューアライブラリ (v4.1)
- SVGオーバーレイ : マーカー表示用
- localStorage : データの永続化
- Vanilla JavaScript : フレームワークレス実装
技術的特徴#
1. URLパラメータによる画像指定#
ツールの最大の特徴は、URLパラメータで任意のIIIF画像を指定できることです:
使用例:
URLエンコードされた画像URLを?u=パラメータで渡すだけで、任意の画像を開けます。
2. 画像URLごとのデータ分離#
localStorageのキーに画像URLを含めることで、画像ごとに独立したデータを管理:
画像URLをBase64エンコードしてキーの一部とすることで、複数の画像プロジェクトを同時に管理できます。
3. IIIF画像の自動読み込み#
画像URLから自動的にIIIF info.json URLを生成:
.tifや.jpgなどの拡張子を自動的に処理し、IIIF Image API 2.0に準拠したinfo.jsonをリクエストします。
4. 座標変換システム#
OpenSeadragonでは3つの座標系が存在します:
- ピクセル座標 : ブラウザ上の表示位置
- ビューポート座標 : 正規化された座標 (0〜1)
- 画像座標 : 実際の画像ピクセル座標
本ツールでは以下のように変換を実行:
5. SVGオーバーレイによる動的マーカー表示#
ズーム・パン操作に追従するマーカーを実装:
ビューポート変更イベントで自動更新:
6. 自動遷移機能#
ユーザーの作業効率を最大化するため、次の交点位置を予測して自動的にビューを移動します。
基本アルゴリズム#
距離変化の検出と警告#
異常な移動距離を検出した場合、ユーザーに確認を求めます:
これにより、ユーザーの誤クリックやパターン変更を検出できます。
7. データ永続化とバックアップ#
localStorage による自動保存#
各画像URLに紐づいた独立したデータ空間で、自動保存が行われます。
エクスポート機能#
CSV形式 :
0
JSON形式 :
1
JSONエクスポートには画像URLも含まれ、後からどの画像のデータかを確認できます。
8. 編集モードと閲覧モードの切り替え#
2
閲覧モードでもメモの追加・編集は可能 ですが、新規点の追加や削除は無効化されます。
9. ポイント移動機能#
順序の入れ替えが必要な場合に対応:
3
10. キーボードショートカット#
- Delete : 選択中のポイントを削除
- ↑/↓ : ポイント間を移動
4
ユーザーインターフェース設計#
レスポンシブレイアウト#
5
ビューアとサイドバーを固定高さで配置し、スクロール可能なリストエリアを実現。
視覚的フィードバック#
- 通常ポイント : 赤い円マーカー + 番号ラベル
- 予測ポイント : 青い破線円 + クロスヘア
- 選択中 : 緑色の背景
- 移動モード : オレンジ色の背景
パフォーマンス最適化#
1. マーカー更新の最適化#
ビューポート変更時にすべてのマーカーを再計算しますが、DOMの再生成は行わず、transform属性のみを更新:
6
2. イベントデリゲーション#
個別のマーカーにイベントリスナーを設定せず、親要素でクリックを処理:
7
データフォーマット#
内部データ構造#
8
localStorageフォーマット#
9
使用例#
基本的なワークフロー#
- URLパラメータで画像を指定(または、デフォルト画像を使用)
0
2. ページを開くと自動的に保存済みデータを読み込み
3. 画像上の座標をクリックして記録
4. 自動的に次の予測位置に移動
5. 必要に応じてメモを追加
6. CSV/JSON形式でエクスポート
複数画像プロジェクトの管理#
異なる画像で複数のプロジェクトを並行して作業する場合:
- 各画像専用のURLブックマークを作成
- 各画像のデータは独立してlocalStorageに保存される
- 画像間でデータが混在する心配なし
- JSONエクスポートには画像URLも含まれる
大量データの処理#
数百〜数千の座標を記録する場合:
- 自動遷移機能を有効化して効率化
- 定期的にJSON形式でバックアップ
- 誤りがあれば移動機能で順序を修正
- 完了後、CSV形式でエクスポートして分析
セキュリティ考慮事項#
XSS対策#
メモ入力値をCSVエクスポート時にエスケープ:
1
データ検証#
JSONインポート時に構造を検証(旧フォーマットとの互換性も保持):
2
今後の改善案#
- Undo/Redo機能 : 操作履歴の実装
- エクスポート形式の拡張 : GeoJSON、Allmaps形式への対応
- 協働編集 : WebSocketによるリアルタイム共有
- 精度向上 : サブピクセル精度の座標記録
- AIアシスト : 交点の自動検出機能
まとめ#
本ツールは、URLパラメータによる柔軟な画像指定、画像ごとのデータ分離、IIIF画像の表示機能、自動遷移機能を組み合わせることで、大量の座標データを効率的に記録できる汎用的なシステムを実現しました。
参考リンク#
作成日 : 2025年10月
バージョン : 1.0