2017-01-16 17 views
1

Googleマップのマーカーの詳細が世界中に広がっているサーバーがあります。今ではそれらをAndroidアプリに表示しようとしています。 明らかに、一度にマーカー全体を表示する必要はありませんが、ユーザーが特定のズーム位置で見ているところだけで表示する必要はありません。私はマーカを送信するためにサーバーからjsonファイルを使用していますが、私はまだ、ユーザーが必要とするものをロードする最も効果的な方法を認識しませんでした。 ありがとうございました!サーバーからGoogleマップマーカーをロードする最も効果的な方法

答えて

0

Googleマップの中心の位置のLatLngを取得できます。次に、あなたのサーバーに位置を送信し、特定の距離より近い点を計算し、それらの点のみを返すことができます。

使用このような何か:だから毎回お使いのカメラの位置が変更さ

mGoogleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
      @Override 
      public void onCameraChange(CameraPosition cameraPosition) { 
       LatLng latLng = cameraPosition.target; 

       mRepository.requestPointsNearPosition(latLng) 
      } 
     }); 

、あなたはポイントをリロードします。この方法では、マップ内の関連する点だけを常に表示します。

はたぶん、あなたは、ハンドラは、地図だけでアクションをトリガーするユーザーが0.5秒間マップを移動し停止することを確認するためにハンドルを使用することができますマップは

+0

that'sしかし、その機能を呼び出す正しい点は何ですか? しかし、地図の中心を移動するたびにサーバにリクエストするのは効果的ではありません。 – Assaf1995

+0

私は何が悪いと思いますか?ありがとうございました! – Assaf1995

0
再び移動した場合、他のそれ自体をキャンセル...移動を停止します

現在のユーザーの縮尺と中央付近の円形領域を定義します。その地域のマーカーをダウンロードしてください。ユーザーがマップを移動するたびに新しい視点がその地域に属するかどうかを確認し、新しいサークルを描き、以前のサークルに含まれていないエリアのアイコンをダウンロードします。

+0

ありがとうございます。しかし、例えば、ユーザーが地図を地球のもう一方の側にスクロールすると、コンテンツ全体を読み込む必要がありますか? – Assaf1995

関連する問題