googleMapでマーカー位置を5秒間隔で更新したいとします。私はマーカーでgoogleMapに表示する必要があるサーバーから異なる緯度と経度の値を取得しています。私はきれいに5回のseconds.It更新の定期的な間隔でupdateCabLocation
メソッドを呼び出しますがANR
メッセージを示しています、定期的にgoogleMapマーカーを更新するにはどうすればよいですか?
void updateCabLocation(final LatLng location) {
if(myMarker == null) {
myMarker = mGoogleMap.addMarker(new MarkerOptions().position(location).
icon(BitmapDescriptorFactory.fromResource(R.drawable.myMarkerImage)));
}else {
myMarker.setPosition(location);
}
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(location, 15);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(location));
mGoogleMap.animateCamera(cameraUpdate);
}
Runnable updateMarker = new Runnable() {
@Override
public void run() {
updateCabLocation(location); // location value changes each time. I have deleted that piece of code here.
handler.postDelayed(updateMarker, 5000);
}
};
を以下を試してみました。それを達成する他の方法はありますか?
ちょっとメモ:なぜ2つのカメラのアップデートがありますか?あなたはそれらの1つだけが必要です。 @MD位置を更新するときにマーカーを削除する理由はありません。 –
@SamKuhmonenはい、あなたは正しいです。 –
どこで 'updateCabLocation'を呼び出していますか?あなたは 'AsyncTask'を使用していますか?あなたはそのコードを投稿できますか? – antonio