2012-12-24 9 views
0

실제로 LocationProvider를 사용하여 승/출력하는 것이 가능하지 않다고 생각하지만 아무도 생각이 없는지 알 것입니다. Android Map API 2.0 - myLocation이 변경 한 콜백?

는 기본적으로 나는 2.0

내가 쉽게 GoogleMap으로 개체에서 getMyLocation의 방법으로 내 위치를 당길 수있는 새로운지도보기를 포함하는 조각 승/페이지 뷰가있는 응용 프로그램을 가지고있다.

나는 과거에 문제가있었습니다. 일부 장치에서는 NetworkLocation & GpsLocation 공급자를 동시에 사용합니다. Google지도에서 내 위치를 가져올 수 있기 때문에 간단한 방법으로 내 위치를 확인할 수 있습니다.

내 유일한 문제는 onCameraChanged를 처리하여지도 패닝을지도를 볼 수 있지만지도 내에서 위치가 변경되는 것을 처리하지 않는다는 것입니다.

내 현재 구현은 MapView와 LocationProvider입니다. 위치 공급자가 서비스에 있으며 사용자가 결정한 시간 (1,5,10,15,30,60 초)을 기준으로 업데이트하도록 설정되었습니다. . 액티비티는 AIDL을 통해 서비스에 연결되며, 연결된 활동이> 0 인 경우 locationProvider는 사용하도록 설정되고 그렇지 않으면 사용하지 않도록 설정됩니다. 이것은 Google지도에 거의 영향을 미치지 않지만 Google지도와 마찬가지로 GPS 신호의 손실을 처리하지 않으면 우리가 얻는 위치가 Google지도와 다릅니다.

내 첫 번째 옵션 : 공급자를 얻은 다음 위치 변경에 대한 콜백을받을 수있는 곳으로 전달합니다 (실제로이 작업을 원하지는 않았습니다). 이것은 LocationSource를 통해 이루어질 것입니다.

두 번째 옵션 현재 서비스에서 사용하고있는 현재 위치 공급자를 가져오고 업데이트 할 때마다지도에서 위치를 파악하기 만하면됩니다. 나는 이것이 효과가있을 것이라고 생각하지만 조금 중복되어 보인다. 화면이 꺼지면 LocationProviders를 관리하는 문제가 생긴다. (Google지도가 필요 없다.)

다른 옵션은 현재 위치를 쿼리 할 수있는 인터페이스를지도 객체에 전달하는 서비스가 있어야합니다. 그리고 사용자가 지시 한 모든 x 초마다 그렇게하십시오. 나는 이것을 위해 대부분의 서비스를 재사용 할 수 있습니다. 전화를 계속하도록 설정해야합니다.

다른 생각은 현재 수동 위치 공급자를 사용하여 현재 MapView를 사용하는 것일뿐입니다.

유일한 다른 고려 사항은 스푸핑입니다. 위치 스푸핑을 시도하고 싶습니다. 나는 우리가 모의 위치를 ​​허락하지 않도록 할 수 있습니다. 그러나 그것이 스푸핑 될 수 없다는 것을 의미하지는 않습니다.

그래서 ... 모든 의견을 크게 기뻐할 것입니다. 감사.

+0

'setLocationSource()'를 사용하지 않고 GoogleMap에 위치 데이터를 입력하는 이유는 무엇입니까? – CommonsWare

+0

다음을 사용할 수 있습니다. GoogleMap 객체는 activate (OnLocationChangedListener)를 사용하여 위치 공급자를 활성화합니다. 예, Google지도에 기본 위치 제공자를 사용하고 싶습니다. 사람들을 처리하는/켜기/끄기, 화면을 처리하는 등 내가 오히려 기본 하나를 사용하는 것입니다. 비록 내가 setLocationSource(), (내 첫 번째 옵션 - 가난하게 작성된) 사용할 수 있습니다. – Chrispix

답변

2

Google은 새로운 LocationClient 및 관련 LocationListener을 도입했습니다 (이전에 도입 된 OnMyLocationChangeListener 인터페이스는 현재 사용되지 않음).

+0

고마워, 내가이 질문을 잊어 버렸다. ..그리고 지금 당신의 대답은 정확합니다 :) – Chrispix