2013-07-16 2 views
11

지도에 서로 가까이 있거나 위에 겹쳐서 표시된 여러 개의 표시가 있습니다. 항상 하나의 특정 마커가 있어야합니다. 마커를지도에 처음 또는 마지막으로 추가하면 중요하지 않습니다. 마커 뒤에 배치되는 경우가 많습니다. 신비한 이유로 Google지도에서이를 결정합니다. Android V2 용 Google지도에서 작동해야합니다.Android의지도 V2에 대한지도 아이콘의 z- 색인 (z- 순서) 변경

답변

2

안드로이드 용 Google Map API V2의 Markers에는 Z- 색인이 없습니다. 그들은 자신의 그리기 순서 처리

+1

2016이 더 이상 사실입니다 .. Z- 색인 – amalBit

+0

지금 –

5

발견 솔루션 :

Marker.showInfoWindow();

정보창이 마커 위에 표시되지만 아무 것도없는 것이 좋기 때문에 최적이 아닙니다.

+0

당신은 할 수 있습니다 그 사실이 아니다 0 0 픽셀이이 경우에보기 InfoWindowAdapter 반환. –

+3

Google에서이를 구현하지 않았다면 쓸모가 없습니다. 내 애플 리케이션을 위해 필요한, 그리고 왜 개발자가 이것을 제어해서는 안됩니다 볼 수 없습니다. 이 솔루션은 아무 것도없는 것보다 낫지 만, 정말 해키하고 내 앱을 다목적으로 사용할 수 없다는 느낌이 듭니다. –

+0

예, 작동하지만 맵을 클릭하지 않을 때까지만 작동합니다. 마커의 수는 모두 고유 한 정보 창을 가지고 있지만지도 위에 클릭하고 싶은 마커에 showinfowindow()를 사용하고 있으며, 정보 창 숨기기와 마커도 숨기기를 클릭합니다. –

0

나는이 게시물이 Google Maps v2 Marker zOrdering - Set to top과 중복되어 있다고 생각합니다. Bastien Beurier의 대답은 Marker.showInfoWindow() 솔루션을 사용하며 실제로 infowindow를 표시하지 않으려는 경우 0x0 infowindow를 만드는 방법을 보여줍니다.

TextView를 LinearLayout에 추가하는 방법에 대한 내 대답을 아래에 적어 두십시오.

14

Android Maps API v2의 6 월 27 일, 6 월 27 일 v9.2.0은 이제 z- 색인을 지원합니다. https://developers.google.com/maps/documentation/android-api/releases#june_27_2016에 발표를 참조하십시오.

그래서지도가/플레이 서비스 버전이 build.gradle에서 v9.2.0로 설정 이상으로되어 있는지 확인 :

compile 'com.google.android.gms:play-services-maps:9.2.0' 

Z- 색인 문서는 아래 (https://developers.google.com/maps/documentation/android-api/marker#marker_z-index에서)입니다 :

z-index는이 마커의 스택 순서를 맵의 다른 마커와 관련하여 지정합니다. z- 색인이 높은 표식은 z- 색인이 낮은 표식 위에 그려집니다. 기본 Z- 색인 값은 0입니다.

마커는 다른 오버레이의 Z- 색인에 관계없이 타일 레이어 및 기타 마커가 아닌 오버레이 (지면 오버레이, 폴리 라인, 다각형 및 기타 모양) 위에 항상 그려집니다. 마커는 다른 오버레이와 비교하여 별도의 Z- 인덱스 그룹에있는 것으로 간주됩니다.

지도에 마커를 추가 할 때 인덱스를 설정할 수 있습니다

map.addMarker(new MarkerOptions() 
    .position(new LatLng(10, 10)) 
    .title("Marker z1") 
    .zIndex(1.0f)); 

... 또는 마커를 만든 후 Marker.setZIndex()를 사용하여. 클릭 이벤트에 Z- 인덱스의 효과에

더 많은 문서 (https://developers.google.com/maps/documentation/android-api/marker#marker_click_events에서) 다음과 같습니다 :

  • 사용자가 마커의 클러스터를 클릭

    는, 클릭 이벤트가 마커에 대한 트리거 가장 높은 z- 색인
  • 클릭당 최대 하나의 이벤트가 발생합니다. 즉, 클릭이 z- 색인 값이 낮은 마커 또는 다른 오버레이로 전달되지 않습니다.
  • 마커 클러스터를 클릭하면 후속 클릭이 클러스터를 순환하여 차례로 선택됩니다.사이클의 순서는 먼저 z- 인덱스에 우선 순위를 부여한 다음 클릭 포인트에 근접합니다.
  • 사용자가 클러스터 근접 외부를 클릭하면 API가 클러스터를 다시 계산하고 클릭주기가 처음부터 시작되도록 다시 설정합니다.
  • 클릭 이벤트는주기를 다시 시작하기 전에 마커 클러스터를 통해 다른 모양 및 오버레이로 떨어집니다.
  • 마커는 다른 오버레이의 Z- 인덱스에 관계없이 다른 오버레이 또는 모양 (폴리 라인, 폴리곤, 원 및/또는 그라운드 오버레이)과 비교하여 별도의 Z- 인덱스 그룹에있는 것으로 간주됩니다. 여러 마커, 오버레이 또는 모양이 서로 위에 겹쳐있는 경우 클릭 이벤트는 먼저 마커 클러스터를 순환 한 다음 Z- 색인 값을 기준으로 다른 클릭 가능한 오버레이 또는 도형에 대해 트리거됩니다.
+0

저를 구 해주셔서 감사합니다. –