私はアンドロイドアプリケーションを設計しています。ユーザーはそこに住所を入力でき、半径300キロ以内のバー/クラブ/飲食店のリストを取得します。google maps apiを使用して大量のデータを扱う
ユーザーのアドレスを入力すると、RESTfulサービス(asp)にコールが送信され、すべてのバー/クラブ/飲食物が選択され、そこからユーザーの所在地までの距離をチェックし、puts配列に300マイルの距離以内にあるものはすべて終了し、終了したらjsonとして結果を返します。
問題は、それがデータベースからすべてのバー/クラブ/ eaterieを選択して、距離を計算する必要があるため、これは本当に遅いです(私はデータの約20kの行を持っている)
プロセス全体の平均応答時間(ユーザーが電話で情報を表示するのをクリックすると)約6〜8秒ですが、約1〜2秒で取得したいと考えています
もっと良い方法がありますか?すべてのレコードを選択して各レコードの距離を確認する必要があるため、問題の原因となっています。
これはあなたのRESTfulなサービスか、 1? –
はい - より現実的な半径を使用してください。なぜあなたは300マイルを使用していますか?誰が夕食のために200マイルを運転しようとしていますか?それ以外のコードを表示する必要があります。しかし、実際の距離を計算している場合(おそらく近似で置き換えることができます)、距離テストのチェックで行うことができる最適化はおそらくあります。 –
@ t.nieseそれは私の安らかなサービスです iv'eできるだけそれを最適化した私が考えることができる他の事は、sqlLiteデータベースにデータを格納し、それを処理するすべてのアンドロイドの位置情報サービス – user2649305