마커를 클릭하면 OnMarkerClickListener
이 호출되므로 OnMapClickListener
이 표시되지 않습니다. mMap.setOnMarkerClickListener(null);
아이콘 개체를 설정하더라도 기본지도 및 개체에 대한 모든 클릭 이벤트가 계속 마스크됩니다. 모든 사용자 차단에 대해 Marker
을 투명하게 설정하려면 어떻게해야합니까?Google Maps API v2 : 마커를 클릭 할 수 없게 만드는 방법은 무엇입니까?
답변
사실 이것은 3.1.59 버전의 라이브러리에서 마커의 "제한"입니다.
마커가 필요한 경우 gmaps-api-issues에 기능 요청을 MarkerOptions.clickable
및 Marker.setClickable
으로 게시하십시오.
가능한 경우 다른 시각적 개체를 사용하는 것이 좋습니다. GroundOverlay
. 유일한 문제는 마커와 달리 맵으로 모두 확장 할 수 있다는 것입니다. 가장 가까운 것은 반경이 0이고 스트로크 폭이 20-50 dp 인 Circle
이지만 단 하나의 컬러 점입니다.
마커에 대한 docs에 따르면 사용자가 직접 Listener를 추가하고 onMarkerClick() 메서드가 false를 반환하면 기본 동작이 실행됩니다.
따라서 onMarkerClick()에서는 true를 반환하고 기본값을 완전히 덮어 쓰지 않습니다.
나는이 문제에 대한 발견 유일한 해결 방법은 당신이 OnMapClickListener
에있는 OnMarkerClickListener
에서 동일한 코드를 실행하고 false
을 반환하는 것입니다 :
getMap().setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
onMapClick(marker.getPosition());
return true;
}
});
onMarkerClick은 클릭 한 위치와 가장 가까운 것으로 판단한 마커의 위치를 제공하기 때문에이 솔루션은 작동하지 않습니다. 실제로 클릭 한 위치가 아닙니다. – Justin
내 시도'onMarkerClick (마커는 arg0) {TRUE를 반환;}'하지만, 'onMapClick'은 여전히 호출되지 않습니다. 내 생각에 워드 프로세서는'true'를 반환하면 기본 동작 (infoWindow)이 발생하고 내 코드 만'onMarkerClick'에 게시됩니다. –
이것을보십시오 : onMarkerClick에서'onMapClick (marker.getPosition()) 행을 추가하십시오. ; ' –
나는 그것에 대해 생각했다. 이 경우 큰 오류가됩니다. 다른 솔루션을 찾을 수 없으면이 방법을 사용합니다. –