Как обновить маркеры на карте в Android?
Я хочу обновить 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"));
}
Ответы
Ответ 1
Сохраните экземпляр всех маркеров, которые вы собираетесь обновить, а затем удалите маркер при обновлении местоположения.
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);