2014-02-18 8 views
0

Как и во многих других API отображения, карта nutiteq api содержит MarkerLayer, которые могут быть добавлены на карту. Он имеет простой способ для removing markers (например: markerLayer.remove(myMarker)).Правильный способ удаления маркера с карты Nutiteq

я заметил, что Marker класс наследует метод, называемый detachFromLayer, который берет свое начало в VectorElement от которого простирается Marker. Согласно Javadoc:

Этот метод предназначен для векторных слоев. Когда элемент удаляется из слоя, его необходимо отсоединить, чтобы удалить ссылку на уровне элемента.

Вопрос: Поскольку Marker является VectorElement и MarkerLayer является VectorLayer, учитывая приведенное выше описание Javadoc, что такое правильный способ, чтобы удалить маркер из маркеров слоя?

Я был бы правильным, что правильный путь к как удалить маркер из слоя (с использованием MarkerLayer#remove) и вызвать detachFromLayer? Или достаточно просто удалить маркер из слоя?

ответ

2

Использование markerLayer.remove(myMarker)10, detachFromLayer - это внутренний метод, и вы не должны использовать его в обычном режиме.

+0

Понял. То же самое касается метода 'detachFromDataSource'? Я столкнулся с этим методом после публикации вопроса, и я заметил, что в качестве примера, если я удаляю маркер, а затем добавьте его обратно на один и тот же уровень, генерируется исключение, указывающее, что элемент уже существует в источнике данных уровня. Я предполагаю, что мне интересно (с этим и оригинальным вопросом), существует ли вероятность утечки памяти, если внутренний источник данных сохраняет ссылку на векторный элемент (в этом случае маркер). Мысли? –

+0

Спасибо за внимание - выяснилось, что исключение при добавлении удаленной отметки маркера было ошибкой в ​​версии 2.3.0. Пожалуйста, проверьте с последним моментальным снимком, где он должен быть исправлен: https://repository-nutiteq.forge.cloudbees.com/snapshot/com/nutiteq/nutiteq-3d-sdk/snapshot/nutiteq-3d-sdk-snapshot.jar – JaakL

+0

Ah га, хорошо знать. Спасибо за это, я просмотрю снимок. –

3

JaakL правильный, удалить правильный метод для вызова. detachFromLayer/detachFromDataSource являются внутренними методами и не должны вызываться приложением (они зарезервированы для пользовательских слоев/источников данных). Вы сообщили, что проблема - это ошибка, которая уже исправлена ​​в моментальном снимке разработки и будет выпущена в версии 2.3.1 (хотя это не относится к 2.3.1RC1). Спасибо, что указали!

+0

Ага, хорошо знать. Спасибо за это, я просмотрю снимок. –

Смежные вопросы