ユーザーが車を運転しているときに最寄りのガソリンスタンドを表示するアプリケーションがあります。これで、最寄りのガソリンスタンドのトップ 10 を表示できます。私が構築したいのは、ユーザーの現在の場所と、データベースから収集した上位 10 件、つまり最初のガソリンスタンドとの間の距離を示すビューを表示することです。私がそれについて考えたこと
1- The GPS provide a new location to my application.
2- run an SQL query to get the top 10 gas stations in a Circle that it center is the user location and it radius is 2 km.
3- calculate the distance between the current location and the first gas station returned from the Query above (which is the nearest one) .
4- display that distance to user.
GPSプロバイダーが新しい場所を提供するのに遅れる可能性があるため、200mの精度内になるようにフィルタリングするため、これが良くないと思うのはなぜですか。そして、戻るのに時間がかかる可能性のあるI / O操作を行います。これにより、ユーザーと最寄りのガソリンスタンドとの間の距離が一定になり、更新を待ちます。
次の点に注意してください
1-クエリで使用した列のインデックスを作成して、フルスキャンの問題を高速化し、防止します。
2-これは、場所の更新をできるだけ早く取得するための更新要求を定義した方法です。this.mLocationManager.requestLocationUpdates("gps", 0, 0, this.mLocationListener);
これを行うためのより速いアプローチはありますか?