Android 如何定期更新谷歌地图标记?
我想以5秒的间隔定期更新谷歌地图中的标记位置。我从服务器上得到了不同的纬度和经度值,我需要用一个标记在谷歌地图上显示。我试了以下方法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
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会消失吗?如果你看到我的代码,我不会每次都创建一个标记。如果它为空,那么只有我在创建它。这是一个很好的技巧。只需更新位置。但是如果你想在你的动作上有一些清晰而优美的动作,你应该为标记设置动画。