Как и во многих других API отображения, карта nutiteq api содержит MarkerLayer
, которые могут быть добавлены на карту. Он имеет простой способ для removing markers (например: markerLayer.remove(myMarker)
).Правильный способ удаления маркера с карты Nutiteq
я заметил, что Marker
класс наследует метод, называемый detachFromLayer
, который берет свое начало в VectorElement
от которого простирается Marker
. Согласно Javadoc:
Этот метод предназначен для векторных слоев. Когда элемент удаляется из слоя, его необходимо отсоединить, чтобы удалить ссылку на уровне элемента.
Вопрос: Поскольку Marker
является VectorElement
и MarkerLayer
является VectorLayer
, учитывая приведенное выше описание Javadoc, что такое правильный способ, чтобы удалить маркер из маркеров слоя?
Я был бы правильным, что правильный путь к как удалить маркер из слоя (с использованием MarkerLayer#remove
) и вызвать detachFromLayer
? Или достаточно просто удалить маркер из слоя?
Понял. То же самое касается метода 'detachFromDataSource'? Я столкнулся с этим методом после публикации вопроса, и я заметил, что в качестве примера, если я удаляю маркер, а затем добавьте его обратно на один и тот же уровень, генерируется исключение, указывающее, что элемент уже существует в источнике данных уровня. Я предполагаю, что мне интересно (с этим и оригинальным вопросом), существует ли вероятность утечки памяти, если внутренний источник данных сохраняет ссылку на векторный элемент (в этом случае маркер). Мысли? –
Спасибо за внимание - выяснилось, что исключение при добавлении удаленной отметки маркера было ошибкой в версии 2.3.0. Пожалуйста, проверьте с последним моментальным снимком, где он должен быть исправлен: https://repository-nutiteq.forge.cloudbees.com/snapshot/com/nutiteq/nutiteq-3d-sdk/snapshot/nutiteq-3d-sdk-snapshot.jar – JaakL
Ah га, хорошо знать. Спасибо за это, я просмотрю снимок. –