2017-04-19 2 views
0

여기 Android SDK를 사용 중입니다. 다음과 같이 OnGestureListener에 가입했습니다. onMapObjectsSelected 메서드는 실제로 클릭 한 마커 만 반환합니다. onTapEvent에서 선택하여 반경 내에서 마커를 기준으로 표시하고 싶습니다.지도에서 탭한 지점에서 특정 반경의 모든 마커를 선택하는 방법

mapFragment.getMapGesture().addOnGestureListener(mlistener); 

MapGesture.OnGestureListener mlistener = 
    new MapGesture.OnGestureListener.OnGestureListenerAdapter() { 
    @Override 
    public boolean onTapEvent(PointF pointF) { 
     int radius = 500; // 500 meter      
     // How can I select all available markers within 500 mtr radius 
     // from point PointF. 
     return super.onTapEvent(pointF); 
    } 

    @Override 
    public boolean onMapObjectsSelected(List<ViewObject> objects) { 
     // Selected markers should be auto listed within objects list 
    } 
}; 

답변

0

보기 rect와 함께 Map#getSelectedObject을 사용하십시오. 시선은 반경이 몇 미터 인 원의 최소 경계 사각형으로 계산되어야합니다. 그런 다음 결과를 필터링하여 선택한 객체 사각형 내에 반환 된 객체 중 필요한 거리보다 큰 객체를 잘라낼 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. @David. 이렇게하면 필자가 필요로하는 객체 목록을 얻을 수 있지만 "onMapObjectsSelected"이벤트에서 동일한 객체 집합을 갖도록 선택하면 어떻게 표시됩니까? –

+0

"선택됨"이란 무엇을 의미합니까? 이것은 객체 세트를 반환하므로 문법적으로 프로와 함께 할 수 있습니다. onMapObjectSelected는 사용자가 화면을 터치 할 때만 발생하며 작은 터치 선택을 기반으로합니다. –

+0

좋아요, 그 의미는 onMapObjectSelected는 사용자 정의 수정 목록이 아닌 사용자 터치를 통해 선택된 객체 세트에서만 실행될 수 있음을 의미합니다. 어쨌든, 당신의 솔루션은 의미가 있고 작동 할 것입니다. 감사. –

관련 문제