2014-02-18 2 views
0

다른 많은 매핑 API와 비슷하게 nutiteq map api는 MarkerLayer을지도에 추가 할 수 있습니다. removing markers에 대한 간단한 방법이 있습니다 (예 : markerLayer.remove(myMarker)). Nutiteq지도에서 마커를 제거하는 적절한 방법

은 내가 Marker 클래스가 Marker의 연장에서 VectorElement에서 유래 detachFromLayer라는 메소드를 상속 것으로 나타났습니다. Javadoc에 따르면 :

이 방법은 벡터 레이어를 대상으로합니다. 요소가 레이어에서 제거되면 요소 레이어 링크를 삭제하려면 분리해야합니다.

질문 : Marker 이후VectorElement이며, MarkerLayer이 마커 층으로부터 마커를 제거하는 적절한 방법은 무엇 상기 자바 독 안내 받아, VectorLayer인가?

난 ( MarkerLayer#remove 사용) 층으로부터 마커를 제거 적절한 방법 모두 인 것이 올바른 될 것이라고 detachFromLayer를 호출? 또는 단순히 마커를 레이어에서 제거하는 것으로 충분합니까?

답변

2

사용 markerLayer.remove(myMarker), detachFromLayer은 내부 방법이므로 정상적으로 사용하면 안됩니다.

+0

알기. 'detachFromDataSource' 메쏘드도 같은 것입니까? 질문을 게시 한 후에 해당 메서드가 발생했습니다. 예를 들어 표식을 제거한 다음 다시 같은 레이어에 추가하면 해당 요소가 이미 레이어의 데이터 소스에 있음을 나타내는 예외가 throw됩니다. 내부 데이터 소스가 벡터 요소 (이 경우 마커)에 대한 참조를 유지하는 경우 일종의 메모리 누수가 발생할 수 있는지 여부에 대해 궁금한 점이 있습니다. 생각? –

+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

아하, 잘 알고 있습니다. 고마워, 내가 스냅 샷을 체크 아웃합니다. –