スタンプラリーを手作りしたら、GPSの誤差と知恵くらべになった話
キャンプ場に着いてボタンを押すと、スタンプがひとつ。
その一瞬の裏側で、けっこう泥くさいことをやっています。
このサイトに、スタンプラリーという遊びを足しました。
訪れたキャンプ場やRVパークでチェックインすると、スタンプがひとつずつたまっていく。
仕組みとしては昔ながらの、ラジオ体操のカードみたいなものです。
作ってみたら、これが思いのほか泥くさい仕事の連続でした。
今日はその裏側の話を書いてみます。
「そこにいる」をどう証明するか
スタンプラリーの核心は、本当にその場所へ行ったかどうかの判定です。
紙のラリーなら現地のスタンプ台が証明してくれますが、Webにはスタンプ台がありません。
代わりに使うのが、スマホのGPSです。
ブラウザには位置情報を取得する仕組みが最初から入っていて、許可をもらえば緯度と経度が手に入ります。
あとはキャンプ場の座標との距離を測って、十分に近ければスタンプを押す。
地球は丸いので、距離の計算には球面上の2点間を求める式を使います。
ハーバーサインという、いかつい名前のわりに中身は素直な式です。
チェックインの判定ルール
キャンプ場 :中心から半径500m以内ならOK
それ以外のスポット :種類ごとに半径300〜800m以内ならOK(公園・海岸など敷地の広い所は広め)
同じ場所は1日1回まで。別の日にまた行けば回数が増える
GPSは意外と嘘をつく
誤差なんて100mも見ておけば十分、と考えたくなります。
でも、それでは足りないことがあります。
山あいのキャンプ場や木の多い場所では、スマホの位置情報の誤差が100mを超えることもあります。
判定を厳しくしすぎると、場内のテントサイトにいるのに「圏外です」と言われる。
ゆるくしすぎると、前の道路を通り過ぎただけで押せてしまう。
広いキャンプ場の敷地も考えて、半径500mという数字に落ち着きました。
理論的な根拠があるわけではなく、地図とにらめっこした末の相場観です。
ズルとの知恵くらべ
位置情報は、その気になれば偽装できます。
だからこのラリーには賞品がありません。
もらえるのは称号だけ。
守るものが名誉だけなら、不正対策もほどほどで釣り合います。
偽装と本気で戦おうとすると、まっとうな利用者まで巻き込む検問だらけのシステムになってしまうので。
それでも最低限の関所は置きました。
連打を防ぐ回数制限と、移動速度のチェックです。
前回のチェックイン地点からの距離と時間を割り算して、時速150kmを超えていたら、その移動は人間ではないと判断して弾きます。
高速道路でも、まず出ない速度です。
位置情報は保存しない
設計で最初に決めたのは、緯度経度を記録に残さないことでした。
判定に使ったら、その場で捨てる。
サーバーに残るのは「どのスポットに、どの日に行ったか」だけです。
誰がいつどこにいたかという情報は、持っているだけで重たい。
預からなければ、漏らしようもありません。
個人でサイトを運営する身としては、これがいちばん安心できる答えでした。
スタンプラリーは泊まる場所ガイドのスタンプラリーからどうぞ。
旅の記録を、スタンプで残してみませんか。
ほかにも書いています
受託・note・スタンプこういう仕組みを作る相談を受けています
毎日の更新・データ集め・集計の自動化/3万円〜収益がいくらだったか、どの施策が外れたか
note / 個人の視点で掘り下げていますスタンプラリーに挑戦する
行った場所は、現地チェックインで記録に残せます※受託の相談とnoteは、運営者が個人で受けている・書いているものです。
