我想在地图中刷新markers
,我的地图包含当前位置的不同位置。如果服务器端添加任何位置,则在我的地图中添加该标记。
如何在没有加载地图的情况下刷新标记?
我的代码
if(arl.size()!=0){
for(int j = 0;j<arl.size();j++){
String lat =arl.get(j).get("lat").toString();
String lng =arl.get(j).get("lng").toString();
if ( !lat.trim().equals("") && !lng.trim().equals("") ) {
double Hlat = Double.parseDouble(lat.trim());
double Hlong= Double.parseDouble(lng.trim());
LatLng dabaseLocations =new LatLng(Hlat, Hlong);
Marker HYD = _googleMap.addMarker(new MarkerOptions()
.position(dabaseLocations)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.flat(true));
// Show current location with database locations
_googleMap.clear();
_googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition));
Marker m=_googleMap.addMarker(new
MarkerOptions().position(myPosition).title("start"));
// m.setPosition(new LatLng(5,5));
}
}
}
else{
// Show only Current Location
_googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition));
_googleMap.addMarker(new
MarkerOptions().position(myPosition).title("start"));
}
答案 0 :(得分:4)
保存要更新的所有标记的实例,然后在位置更新时删除标记 p>
private Marker mCustomerMarker;
if (mCustomerMarker != null) {
mCustomerMarker.remove();
}
再次重新绘制
LatLng mCustomerLatLng = new LatLng(latitude, longitude);
MarkerOptions options = new MarkerOptions();
options.position(mCustomerLatLng);
options.title(getResources().getString(R.string.pickup_marker));
options.icon(BitmapDescriptorFactory
.fromResource(R.drawable.green_pin));
在Google地图中添加标记
mCustomerMarker = googleMap.addMarker(options);