2014-12-06 3 views
1

현재 좌표 (경도 및 위도)를 서버에 전송하는 애플리케이션을 작성하고 있습니다. Google지도 api를 사용하여지도에서 마커를 지속적으로 업데이트하려고합니다. 그러나, 나는 이것에서 아주 실패했다.Android - Google지도 API를 사용하여 마커의 위치를 ​​동적으로 변경 api

서버에서 데이터를 파싱하므로 마커를 업데이트해야하는 좌표가 있습니다. 그러나 marker.remove() 또는 marker.setPosition (latilongi)을 수행하는 경우 응용 프로그램은 서버에서 파싱 된 마지막 좌표 만 가져옵니다.

사람이 안드로이드 앱을 실행할 수 있고 마커가 동적으로 변경되는 것을 볼 수있는 방법에 대한 통찰력이 있다면 많은 도움이 될 것입니다! 사용하려는처럼 사전에

덕분에

+0

'marker.setPosition (latilongi)'를 사용할 때 무슨 일이 일어나고 있습니까 ?? – Lal

+0

마커를 서버에서 파싱 된 마지막 위치로 설정하면 마지막 위치 인 – user2533283

+0

이전 위치에 마커가 표시되지 않으므로 이전 마커가 새로 추가 된 마커와 함께 표시되도록합니다 .right ??? – Lal

답변

0

소리가 난다 중 하나 animateCamera() 또는 updateCamera()

당신은하지만, 기본적으로 당신은 당신이 좋아하는 일을하고있을 것이다지도의 새로운 센터를 알고 있다면, 다음과 같은 몇 가지 세부 사항을 찾을 수 있습니다

이 :

public void centerMapAt(LatLng latLng) { 
    mMap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); 
} 

또는

public void centerMapAt(LatLng latlng, LatLngBounds bounds) { 
    int padding = 100; 
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding); 
     getMap().animateCamera(cameraUpdate);  
} 

많은 옵션이 있습니다.

http://developer.android.com/reference/com/google/android/gms/maps/CameraUpdateFactory.html

http://developer.android.com/reference/com/google/android/gms/maps/GoogleMap.html#animateCamera(com.google.android.gms.maps.CameraUpdate)

+0

오케이, 고마워. 나는 이것을 시도하고 볼 것이다! 내 onCreate() 메서드에서이 메서드를 호출하는 것이 맞습니까? – user2533283

+0

서버에서 새 위치를 가져올 때마다이 코드를 호출하는 것이 좋습니다. 내가하는 일은 맵이 활성화되어있는 동안 매 10 초마다 서버를 폴링하는 것이므로 매 10 초마다 새로운 위치를 얻은 다음 내 마커를 업데이트하고 cameraAnimate (newLocation)를 통해 맵을 다시 매칭합니다. – nPn

2

당신은 애니메이션 마커가 이것을 사용 이동하려면이 옵션을 사용할 수는 : https://gist.github.com/broady/6314689

비디오 :

/** 
    * @param marker the operation marker 
    * @param finalPosition the destination latlng 
    * @param latLngInterpolator interpolator of animation 
    */ 
static void animateMarkerToICS(Marker marker, LatLng finalPosition, final LatLngInterpolator  latLngInterpolator) 

이 코드입니다 https://www.youtube.com/watch?v=WKfZsCKSXVQ

관련 문제