Я пытаюсь обновить местоположение маркера в карте Google, которую я получаю в качестве ответа с сервера. Я храню маркер и table_id
в HashMap для отслеживания маркера на карте, но при текущем состоянии новый маркер всегда создается в update the Location
, не удаляя старый. Может ли кто-нибудь увидеть, что я делаю неправильно?Удалите определенный маркер с карты Google, прежде чем обновлять местоположение.
Я заметил, что это просто работает для первого обновления после того, как новый всегда создается.
Код
public class Map extends FragmentActivity implements OnMapReadyCallback {
GoogleMap map;
Marker marker;
HashMap<Integer, Marker> markerMap = new HashMap<Integer, Marker>();
private void gotoLocation(int id, double lat, double lng,
String route_direct) {
final float zoom = 11;
LatLng ll = null;
if (markerMap.containsKey(id)) {
// Update the location.
marker = markerMap.get(id);
marker.remove();
ll = new LatLng(lat, lng);
if (lat != 0 && lng != 0 && !route_direct.isEmpty()) {
MarkerOptions markerOpt = new MarkerOptions()
.title(route_direct).position(ll).visible(true);
marker = map.addMarker(markerOpt);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll,
zoom);
map.moveCamera(update);
}
} else {
ll = new LatLng(lat, lng);
if (lat != 0 && lng != 0 && !route_direct.isEmpty()) {
MarkerOptions markerOpt = new MarkerOptions()
.title(route_direct).position(ll).visible(true);
marker = map.addMarker(markerOpt);
markerMap.put(id, marker);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll,
zoom);
map.moveCamera(update);
}
}
}
}
Скриншот
@ DanielNugent: идентификатор table_id из базы данных таблицы. Я не могу утверждать, почему он работает только для первого обновления, а затем создается новый маркер! – MrPencil
Я отлаживал его раньше, и он попадает в заявление if. Я попробую еще раз и уведомит вас. – MrPencil
@ DanielNugent: Я пробовал, и условие вводится все время, но оно просто работает для первого обновления. Да, я удалил строки 'getMapAsync', я поместил их там для тестирования. У меня есть они в 'onCreate' – MrPencil