Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何定期更新谷歌地图标记?_Android_Google Maps - Fatal编程技术网

Android 如何定期更新谷歌地图标记?

Android 如何定期更新谷歌地图标记?,android,google-maps,Android,Google Maps,我想以5秒的间隔定期更新谷歌地图中的标记位置。我从服务器上得到了不同的纬度和经度值,我需要用一个标记在谷歌地图上显示。我试了以下方法 void updateCabLocation(final LatLng location) { if(myMarker == null) { myMarker = mGoogleMap.addMarker(new MarkerOptions().position(location). icon(Bitmap

我想以5秒的间隔定期更新谷歌地图中的标记位置。我从服务器上得到了不同的纬度和经度值,我需要用一个标记在谷歌地图上显示。我试了以下方法

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
消息。有没有其他方法可以实现这一目标?

有两种方法-

  • 每次清除地图,然后每次绘制一个新标记
  • 每次在位置更新中获得新位置时,将同一标记设置为不同位置的动画

  • 请注意:为什么您有两个摄像头更新?你只需要其中一个@MD在更新其位置时没有理由删除标记。@SamiKuhmonen是的,你是对的。你在哪里调用
    updateCabLocation
    ?您是否正在使用
    异步任务
    ?你能发那个密码吗?@SamiKuhmonen:我在做一些研发,但它还在那里。我将删除一个。谢谢你标记它。否则我看不出有什么问题,特别是如果每5秒调用一次。是否确实是与谷歌地图的互动导致了这种情况?如果你把这个注释掉,ANR会消失吗?如果你看到我的代码,我不会每次都创建一个
    标记。如果它为空,那么只有我在创建它。这是一个很好的技巧。只需更新位置。但是如果你想在你的动作上有一些清晰而优美的动作,你应该为标记设置动画。