実際にGPSの記録をGeoHex上で表現する場合、まず、GPSロガーでログを記録する必要があります。今回、自分は、GPSロガーAndroidを使って取得して移動したデータを使ってみます。
ここで取得した値をgoogleドライブ経由でダウンロードして、加工します。
加工には、pythonのscriptを作ってみました。pythonのgeohexのライブラリをpipを使ってインストールします。
# pip install py-geohex3
これで、javascriptと同等の座標からgeohexのゾーン情報を得ることが可能なライブラリがインストールされますが、ただ、これでは、2点間の座標が隣接したHexにならない場合に飛び地になってしまいます。それをフォローするために、2点間の隙間のHexを得るライブラリを作成しました。といっても、geohex Ver2の関数の移植ですが...
これを使って地図にプロットすると、次のようになります。
2点間の飛び地をフォローする仕組みにより、トンネルも「真っ直ぐであれば」結構、しっかりフォローできます。
ただ、カーブしているトンネルは、最短距離で入り口、出口をつないでしまうので微妙になってしまいます。この例は上越新幹線の水上-越後湯沢間のトンネル区間。
さらに都内の地下区間の場合、スマートフォンでは、Wifi APなどから場所判定を行う場合があるため、強烈な位置飛びをしてしまう場合があります。上野-田畑間の地下区間ですっ飛ばされた場合、
こんな感じになってしまいます。とはいえ、形は整った感じです。今は、座標情報をコンテンツに埋め込んでいるので、Node.jsを使ってサーバから取得する形にできれば、スマートにできるかな、と思ってます。
0コメント