我的地图上有朋友的标记。我想在它们移动时更新它们的标记。我通过定时器任务重新加载"UI"来完成这项工作,这可能会激怒用户。但我想在不重新加载"UI"的情况下更新标记,我的意思是,这对用户来说是不可见的。
我是安卓系统的新手,所以请帮助我
制作两个列表,一个包含Markers,另一个包含以下MarkerOptions:
ArrayList<MarkerOptions> markerOptionList = new ArrayList<>();
ArrayList<Marker> markerList = new ArrayList<>();
当你得到更新的纬度和经度列表时,调用下面的方法:
public void setMarker(GoogleMap map, ArrayList<Double> latitudeList, ArrayList<Double> longitudeList, ArrayList<String> titleList){
mMap = map;
for(int j=0;j<markerList.size();j++){
markerList.get(j).remove();
}
markerList.clear();
markerOptionList.clear();
for(int i=0;i<latitudeList.size();i++){
LatLng position = new LatLng(latitudeList.get(i), longitudeList.get(i));
MarkerOptions options = new MarkerOptions().position(position)
.title("" + titleList.get(i))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker));
markerOptionList.add(options);
Marker marker = mMap.addMarker(markerOptionList.get(i));
markerList.add(marker);
}
}
这将只更新地图上的标记,而不是再次加载整个地图,这可能会激怒用户。