1

近接したランナーをつなぐAndroidアプリを作成します。Tornado ServerWeb(Python)とNo-SQLデータベースを使用しました。

私の解決策:

ユーザーのすべての{lon、lat}(定期的に更新)をDataLocationに保存します。

ユーザーが自分の周りのユーザーを見たい場合、サーバーに特定の関数を呼び出して、現在の位置からバウンディングボックスを作成します。次のステップは、バウンディングボックスにいる私のDataLocationのユーザーを返すことです。

それは良い方法ですか?何かアドバイスはありますか?GeoJSONは私にとって役に立ちますか?Pythonでそれを行うにはどうすればよいですか?

4

1 に答える 1

0

ライブラリがなく、自分でやりたい場合は、Great Circle Distanceを使用して距離を計算できます。式はそれほど複雑ではありません。特定の半径内にあるポイントのグループを見つけるには、距離 (大圏距離で計算) が半径よりも小さいポイントをデータベースに照会する必要があります。

さらに、速度を上げたい場合は、サインやコサインなどの中間計算を別の列にキャッシュすると、特にデータベース レベルでクエリを実行する場合に速度が向上します。

于 2011-01-19T21:14:57.303 に答える