GPSを使ったすれ違い通信サービスはどういったプログラミング、アルゴリズムで動いているのでしょうか?
スマホアプリのパズドラのすれ違いサービスや下記のアプリのすれ違い機能のことです。
クロスミー
アンド すれ違いネットワーキング
それともニンテンドー3DSソフトのすれ違い通信はGPS使ってないから、それと同じ要領で行っているのでしょうか?(Bluetooth?)
GPSの位置情報を数秒置きに取得してユーザー間がすれ違ったか調べるには、アルゴリズムに関して詳しいほうでないので自分でわかる範囲で考えたのですが、もっとスマートな方法があったり根本的に間違っていたとしたら指摘してください。
1、ユーザーの位置情報を取得する。
2、緯度(もしくは経度)でクイックソートする。
3、ソートした後、ユーザーごとにある一定の距離(緯度だけで判断)内にいるユーザーを絞り込む。
ソートしてあるのでK番目のユーザーをしらべるのはK+1番目以降のユーザーを調べるのみでいい。
4、絞り込んだら更に、経度でも一定の距離(緯度だけで判断)内にいるユーザーを絞り込む。
5、その後、絞り込んだユーザー間同士の距離を計測。
6、一定距離内にいるユーザーにその旨を通知する。
と考えました。
全てのユーザー間の距離を計算してしまえば手っ取り早いのですが、膨大な数になると
(例えば50000人いるだけで50000×50000で25億回の計算が必要になってしまうので)
現実的ではないと思いました。
この考え方でもまだ現実的ではないよな、と思うのですがほかに思い浮かびません。
また、どこですれ違ったかの位置情報も入手、通知したいなと思っています。
この場合、BlueToothだけでは無理かなと考えています。
プログラムのここが動かないなどのピンポイントな質問でないので、ひどくぼやけた質問かと思いますが
どうかよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/16 05:50
2017/04/16 05:54
2017/04/16 05:57
2017/04/16 06:27