ユーザーを常にマップの中心に保つ必要があるアプリを作成しています。
私は以下を設定しました:
locationManager = (LocationManager) saveContext
.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MapLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000,
10, locationListener);
if (myLocation != null) {
setLocation(myLocation);
}
private void setLocation(Location location) {
workoutMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
location.getLatitude(), location.getLongitude()), 18.0f));
}
携帯電話の履歴に lastKnownLocation がある限り、これは機能します。マップは正しく中央に配置されます。
新しい場所の更新を取得するたびに、新しい場所情報を使用して setLocation() が再度実行されることを願っています。
lastKnownLocation を取得してから setLocation(); を取得するスレッドを作成しようとしました。しかし、これはうまくいきません。