PRODUCT · スグイコ
位置情報アプリなのに、正確な現在地を見せないことにした理由
スグイコは参加前の位置を約300mのグリッドへ丸め、距離も帯で表示します。便利さを残しながら、正確な居場所を必要になるまで渡さない設計にした理由を書きます。

位置情報を使うアプリなら、現在地は正確なほど便利に見えます。でもスグイコでは、参加が決まる前の相手に正確な座標を渡さない設計にしました。近いことは分かる。でも、どの建物にいるかまでは分からない。その境界を最初からサーバー側で作っています。 必要なのは正確な座標ではなく、「近い」と分かることでした。どの精度で見せるかを設計の一部として決めた話と、情報を開示していく順番の考え方を書きます。権限で守る範囲と、画面で見せる範囲は別の層だと考えています。
必要だったのは、「近い」と分かることだけ
スグイコで知りたいのは、近所の予定に無理なく参加できるかどうかです。相手の現在地を数メートル単位で知る必要はありません。
そこで参加が決まるまでは、地図に返す座標を約300mのグリッドの中心へ丸め、距離も「〜500m」「〜1.5km」のような帯で返します。徒歩で行けるかを判断する情報は残しながら、住所の推測につながる精度は落とします。
現在地と待ち合わせ場所を、最初から別物にした
募集を作るときに公開するのは「今いる場所」ではありません。地図上で、自分が行きたい待ち合わせ場所を選びます。駅前でもカフェでも構いません。
これが一次防御です。自宅から投稿しても、駅前を選べば自宅の位置は募集に入りません。それでも自宅付近を選ぶ可能性に備えて、二次防御としてサーバー側の丸めを重ねています。

ぼかしをON/OFFできる設定にはしなかった
最初は「正確に見せる」「ぼかして見せる」を本人が選べてもよさそうに思えます。でも、それでは安全を選んだ人だけが不利になる可能性があります。
正確な場所を出した募集のほうが参加しやすく見えるなら、位置を守りたい人ほど集まりにくくなります。安全設定を使うと体験が悪くなるなら、設定は実質的な選択肢ではありません。
だから全員を同じ条件にしました。安全を取るために、ユーザーが何かを諦めなくていい状態を既定にしています。
ランダムにずらすのではなく、同じセルの中心を返す
座標を毎回ランダムに少しずらす方法もあります。ただ、何度も取得して平均を取れば、本当の位置へ近づいていく可能性があります。
スグイコでは同じ地点なら何度取得しても、同じグリッドの中心を返します。呼び出す側が観測を繰り返しても、新しい精度が増えません。
- 参加前:丸めた座標と距離帯だけ
- 参加決定後:正確な待ち合わせ場所
- 合流中:その募集の参加者だけにライブ位置
便利さより先に、情報を開示する順番を決める
位置情報は、取得できるから全部使うものではないと思っています。必要になる瞬間まで精度を上げないほうが、体験をほとんど損なわずに守れる情報があります。
スグイコでは「近くに予定がある」ことと「正確にどこへ行けばいいか」を別の段階にしました。プライバシー設定を足すのではなく、プロダクトの流れそのものに開示順を埋め込む。 位置情報を使ううえで一番大事にしている考え方です。
OS側で位置情報の許可がどう分かれているかはiPhoneの位置情報「常に許可」「使用中のみ」の違いと選び方に、アプリが何を持つかを確かめる手順はアプリのプライバシーポリシーはどこを見る?探す五つの項目に書いています。
JOURNAL
関連する読み物
STORYスグイコApp Storeに「似たアプリはもう十分ある」と言われて、アプリの主語を変えたGuideline 4.3(b)で却下されたスグイコ。説明文だけを変えず、プロフィール中心の構造から「予定に2〜4人が集まる」体験へ作り直した理由と判断を書きます。2026.09.11 · 4 min read
STORYスグイコセキュリティを強くしようとして、本番を止めた。RLSの見落としSupabaseのRPC権限を締めた直後、主要データが読めなくなりました。RLSと権限の見落とし、復旧、再発防止までを実例から振り返ります。2026.09.16 · 8 min read
NEWPRODUCT一人開発でAIを使うなら何から始める?5段階で試した活用法企画・実装・確認・調べもの・公開の5段階で、AIに任せた作業と自分で決めた作業を整理。一人でアプリとサイトを運営しながら試した範囲で書きます。2026.09.26 · 10 min read