Я разрабатываю приложение для Android, основанное на местоположении, которое имеет дело с множеством элементов наложения.
Предыстория. Есть довольно много объектов, которые я хочу отобразить на карте. Координаты сущностей меняются в реальном времени по мере изменения их местоположения. В соответствии с обновленным местоположением объекты должны быть обновлены на карте. Сущностей может вырасти до большого количества.
Реализация У меня есть два наложения. Один для MyLocationOverlay для отображения местоположения пользователя, а другой — подкласс ItemizedOverlay со всеми объектами, которые мне нужно отобразить на карте.
Проблема При изменении местоположения объекта необходимо обновить соответствующий элемент наложения. Проблема в том, что я не уверен, что это лучший способ сделать это. у меня такие варианты
Когда я получаю местоположение определенного объекта, я удаляю все наложения с карты и снова добавляю наложения. Один из элементов наложения теперь создается с обновленным местоположением.
List<Overlay> overlays = map.getOverlays(); overlays.removeAll(overlays); overlays.add(new MyOverlay(marker,this));
Я создаю наложение для каждой сущности. Это означает, что я создам 500 наложений, каждое из которых будет содержать только один элемент наложения. Я создаю подкласс класса Overlay и добавляю свои собственные свойства, чтобы четко идентифицировать объект и создавать по одному для каждого. Когда я достигаю обновления местоположения определенного объекта, я выполняю итерацию и получаю конкретный элемент наложения, удаляю его и добавляю новый с обновленным местоположением.
Я не знаю, какой из них лучше всего использовать с точки зрения производительности.
Я чувствую, что удаление всех и повторное добавление всех наложений для каждого отдельного обновления местоположения (что может быть довольно часто) каждого отдельного объекта становится довольно накладным, когда количество объектов становится более 500 или 1000.
В то же время повторение одного и того же количества сущностей также может быть равно затратным.
Будем признательны за любые советы о том, какой из них выбрать, или лучший способ реализовать это.
/Энди