1

私は
最初にタクシー配車アプリを構築しています:最も近いタクシーを表示するには旅客アプリが必要です.コードでそれを行う方法を知っていますが、私の方法では、すべてのタクシーの場所(サーバー上のデータベース内)を調べて計算する必要があります.乗客の場所からの距離と最も低いものを取得します-多くのタクシーがあり、それらすべてを通過し、いくつかの計算を行うことはサーバーにとって一種の苦痛であるため、これを行いたくありません-方法はありますかそれらすべてを通過せずに最も近いものを取得するには?

2番目:使用するのに最適なデータベースは何ですか-最初に、SQLか非SQLか-多くの更新があるため、非常に堅牢なデータベースが必要です(乗客の場所が追加され、目的地に到着したときに削除されることを意味します&&タクシーの場所は頻繁に変わります)

最後に: RubyOnRails を使用してサーバー側を実行し、json をデータ転送形式として使用します。

ありがとう

4

4 に答える 4

1

複雑な方程式が関係しているため、距離の計算には時間がかかります。

代わりに、より単純化した「疑似距離」の計算を試みてください。

たとえば、目的に応じて d = SQRT (x*x + y*y) の代わりに、d = |x| のようなものを試すことができます。+ |y| そしてそれを並べ替えます。大まかな概算で十分なので、ここでは正確な式は必要ありません。

于 2013-04-02T12:04:18.033 に答える
0

最初の質問の場合:モバイルデバイスからラジオを送信でき(つまり、/ 43.34343 / -3.3333 / 1000で、1000はメートル単位のラジオを表します)、サーバーからはこのエリアに含まれるタクシーのみを返します。デバイスの場所とタクシーのリストの間の距離を計算することでそれを行うことができます。

于 2012-11-30T09:02:06.387 に答える
0

最初に: 最も近い距離を計算するために使用します。ただし、すべてのタクシーの場所と比較するのではなく、乗客の緯度経度を通過することをお勧めします。

サーバー上でタクシーの位置を緯度経度で維持します。緯度経度の +/- 3 でタクシーを取得するクエリを記述します。これにより、旅客エリアの近くで利用できるタクシーの数が制限されます。

sencond: = リレーショナル データベースを使用します。SQL Server は、以前のプロジェクトで使用したアプリケーションに適しています。

サーバーの場合: RubyOnRails についてはわかりませんが、これは、彼らが言うように、より高速で簡単に実装できます..、これを変更する必要のない最適なデータ交換形式 Json を選択しました。zip を使用してパフォーマンスを向上させることができます。

于 2012-11-30T09:15:27.857 に答える
0

このリンクを試してみてください 。ホテル、劇場などの最寄りの場所がすべて表示されます。特定の場所の住所がリストに表示され、地図ビューにも表示されます。

これがお役に立てば幸いです。

于 2012-11-30T10:25:16.123 に答える