如何定期更新googleMap标记?

时间:2016-04-03 15:22:17

标签: android google-maps

我想以5秒的固定间隔更新googleMap中的标记位置。我从服务器获得不同的纬度和经度值,我需要使用标记在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);
        }
    };

我以5秒的固定间隔调用updateCabLocation方法。它更新得很好,但显示ANR消息。有没有其他方法可以实现它?

1 个答案:

答案 0 :(得分:1)

你有两种方法可以做到 -

  1. 每次都清除地图,然后每次都绘制一个新标记。
  2. 每次在位置更新中获得新位置时,将相同标记设置为动画到不同位置。