Как динамически обновлять определенный элемент наложения

Я разрабатываю приложение для Android, основанное на местоположении, которое имеет дело с множеством элементов наложения.

Фон: Есть довольно много объектов, которые я хочу отобразить на карте. Ко -координаты объектов изменяются в реальном времени по мере изменения их местоположения. В соответствии с обновленным местоположением объекты должны быть обновлены на карте. Сущностей может вырасти до большого количества.

Реализация У меня две накладки. Один для MyLocationOverlay для отображения местоположения пользователя, а другой — подкласс ItemizedOverlay со всеми объектами, которые мне нужно отобразить на карте.

Проблема Всякий раз, когда изменяется местоположение объекта, необходимо обновить соответствующий элемент наложения. Проблема в том, что я не уверен, что это лучший способ сделать это. У меня есть выбор

  1. Когда я получаю местоположение определенного объекта, я удаляю все наложения с карты и повторно -добавляю наложения. Один из элементов наложения теперь создается с обновленным местоположением.

    List<Overlay> overlays = map.getOverlays();
    overlays.removeAll(overlays);
    overlays.add(new MyOverlay(marker,this));
    
  2. Я создаю наложение для каждой сущности.Это означает, что я создам 500 наложений, каждое из которых будет содержать только один элемент наложения. Я создаю подкласс класса Overlay и добавляю свои собственные свойства, чтобы четко идентифицировать объект и создавать по одному для каждого. Когда я достигаю обновления местоположения определенного объекта, я выполняю итерацию и получаю конкретный элемент наложения, удаляю его и добавляю новый с обновленным местоположением.

Я не знаю, какой из них лучше всего использовать с точки зрения производительности.

Я чувствую, что удаление всех и повторное -добавление всех оверлеев для каждого отдельного обновления местоположения (, что может быть довольно часто )для каждого отдельного объекта, становится довольно накладным, когда количество объектов становится больше 500 или 1000.

В то же время повторение одного и того же количества сущностей также может быть равно затратным.

Будем признательны за любые советы о том, какой из них выбрать, или лучший способ реализовать это.

/Энди

6
задан andy 23 July 2012 в 18:00
поделиться