То, что я хочу достичь, состоит в том, чтобы на карте отображалось 2 вида маркеров.Удалить itemizedOverlay во время onLocationChanged
1) Красные маркеры, которые отображают события, извлеченные из базы данных (сделано это - itemizedOverlay)
2) Оранжевый маркер, который будет динамически отображать местоположение пользователя на карте (itemizedOverlay2).
Я использую ItemizedOverlay, чтобы иметь 2 разных слоя (один для событий и один для местоположения пользователя), но у меня проблема с динамическим маркером, который показывает позицию пользователя.
ВОПРОС:
Что происходит это LocationListener успешно получает широту/долготу и помещает точку на карте, но в предыдущем пункте все еще существует. Поэтому у меня есть след маркеров, показывающих местоположение пользователя.
Я реализовал несколько способов поиска в Интернете, но ни один из них не происходит во время вызова onLocationChanged.
class myLocationListener implements LocationListener{
OverlayItem overlayItem;
@Override
public void onLocationChanged(Location location) {
if (location != null){
mapOverlays.remove(itemizedOverlay2);
mapView.invalidate();
lat = location.getLatitude();
longi = location.getLongitude();
GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6));
mControl.animateTo(point);
overlayItem = new OverlayItem(point, "My Location", "This is probably where you are");
itemizedOverlay2.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay2);
}
}
Я знаю, что вам может понадобиться больше моего кода, но давайте просто оставаться в этом блоке увидеть, если кто-то видит, где я получаю это неправильно.
спасибо.
Эта ссылка может быть полезной для вас: [Android MapView не может удалить маркер] (http://stackoverflow.com/a/4634287/3577656). – Rajal