2013-06-16 4 views
0

지도를 항상 중앙에 유지해야하는 앱을 제작하고 있습니다.Android - Google지도 - 모든 위치 변경 카메라 업데이트

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()을 얻는 스레드를 만들려고 시도했다. 하지만이 방법은 효과가 없습니다.

답변

1

Googles Receiving Location Updates 가이드의 우수하고 완전한 샘플을 살펴 보시기 바랍니다.

샘플 코드와 ADT에서 바로 가져올 수있는 Android 프로젝트가 포함되어 있습니다.

위치 서비스가 위치 업데이트를 앱에 전송하기 위해 호출하는 콜백 메소드는 LocationListener 인터페이스의 onLocationChanged() 메소드에 지정됩니다.

여기에서 카메라를 업데이트 할 수 있습니다.

0

누군가 다른 사람이이 문제에 걸려 넘어지면이를 수행 할 수 있으며 사용자 Rob이 제공 한 대답은 다른 StackOverflow 게시물 here에 있습니다.

기본 개념은 CameraPosition 객체를 생성하고이를 CameraUpdateFactory에 전달한 다음지도에서 CameraUpdate 객체를 애니메이션화하는 것입니다.