0

MySQL リモート サーバーの DB に 300 の緯度経度番号が格納されています。携帯電話からの現在の緯度と経度の差と、DB の緯度経度との差をリモートで計算したいと思います。〇

これを達成するための最良の方法は何ですか?

電話から現在の緯度と経度を送信し、計算を行って差額を返送することを考えていましたか?

より良い方法はありますか?

ありがとう!

4

1 に答える 1

1

300 は多くのデータ ポイントではありません。50,000 以上のアプリがありますが、まったく問題ありません。

私なら、データベースをリモート サーバーからあなたの携帯電話 (または列のサブセット) に送信します。

私自身のアプリでは、世界を 1°x1° のセクターに分割し、セクター番号を次のように割り当てました。

sector = (lat+90)*360 + (lon+180);

それらを効果的にハッシュします。ハッシュ コードはデータベースの一部です。

次に、近くのデータ ポイントを探したい場合は、現在の緯度と経度のセクター番号と、隣接する 8 つのセクターのセクター番号も計算します。次に、データベース検索をそれらの 9 つのセクターに限定します。

その後、これらの近くのセクターのデータ ポイントについてデータベースにクエリを実行し、現在地とそれらのデータ ポイントの間の距離を計算します。

データベースを携帯電話にダウンロードするための 1 回限りのコストがかかりますが、後でかなりの時間と帯域幅を節約できます。

于 2013-04-27T01:01:18.333 に答える