アンカー:根拠となるもの
ライブラリを撮影時刻で並べると、位置情報のない写真はすべて、位置情報を持つ写真の間のどこかに収まります。その位置情報付きの隣人たちが、その写真のアンカーです。14:02にiPhoneで噴水を撮り、そこから30分カメラで同じ光景を撮り、14:36に橋を撮ったなら、カメラの写真はそのふたつの既知の場所の間で起きたことになります。考え方はこれだけです。あとは、それを丁寧に適用するだけです。
グループ:レビューの単位
同じアンカーの組を共有し、同じカメラから来て、短い時間に収まる位置情報のない写真は、ひとつのグループとしてレビューされます。市場で過ごした午前中は、40回の判断ではなく1回の判断です。確定したグループの写真はすべて同じ位置情報を受け取ります。1枚だけが40 m先の通りにあったなどと、このアプリは意図的に知ったふりをしません。
確信度:アプリが主張することと、しないこと
各グループは、アンカー間の距離、その間の時間、そしてそこから導かれる速度によって分類されます。この区分が、地図に何が表示されるかを決めます。
| 区分 | 根拠 | 地図に表示されるもの |
|---|---|---|
| 確実 | アンカーから数秒以内に撮影、または両側のアンカーが同じ場所 | 推測ではないピン |
| 推定 | アンカー同士が近く、その間は歩ける速さ | 時間で重みづけしたピン。ひと目確かめる価値あり |
| 不確実 | 飛行機、長い空白、遠く離れたアンカー | ピンなし。破線の経路と、正直な事実 |
| 手動 | 自分でピンをドラッグ | 自分で決めた配置。そう明示されます |
誠実さのルール。不確実な提案は、アプリの内部に座標をまったく持ちません。だからどの画面も、エンジンが根拠を示せない推測に対して、自信ありげなピンを描くことはできません。正直さは、塗装ではなく構造によって守られています。
正直な場面を正直なまま保つ細部が、ふたつあります。アンカーの数秒後に撮られた連写は、グループの他の写真が確実でなくても確実と判断されます。いちばん強い手がかりが引きずり下ろされることはありません。そして時間の窓は、グループのいちばん遠い写真を基準に判定されます。いちばん近い写真ではありません。運よく近かった1枚が、何時間も後に撮られた写真を保証することはできないのです。
タイムラインバー
グループのカードにはどれもバーが付いています。前のアンカー、空白、後のアンカー。その幅は実際の経過時間どおりに描かれます。4分の空白は細い筋で、考えるまでもなく確定できます。6時間の空白は広い帯で、直感的に疑いたくなります。数字をひとつも印字せずに、確信度を伝えます。
レビュー:数回のスワイプ
- 確定すると、グループのすべての写真が提案された地点に配置されます。
- スワイプでグループをスキップ。次回また出てきます。
- ピンをドラッグすればどこへでも。そのグループは手動になります。
- タップでグループのグリッドを開き、はぐれた1枚を取り出せます。
- アプリが確実だと判断したグループは、1回もスワイプしないうちに一括で受け入れられます。
適用 & 取り消し:信頼できる書き込み
レビュー中、ライブラリには何も触れません。判断はローカルに一時保存され、「適用」を押したときにだけ書き込まれます。しかも1枚の写真が変更される前に、すべての書き込みが、その写真の元の位置情報とともにジャーナルへ記録されます。元の位置情報が「なし」だった場合も同じです。書き込みの途中でアプリがクラッシュしても、ジャーナルは完全なままです。
「取り消す」はジャーナルを逆順に再生し、すべての写真を元どおりに戻します。そのあとにご自身で編集した写真はスキップされ、報告されます。上書きされることはありません。そもそもライブラリには書き込みたくない? 確定した配置をGPXトラックとして書き出すこともできます。