지도에 마커 추가하기

플랫폼 선택: Android iOS JavaScript

3D 지도의 마커

다음 코드 샘플은 addMarker 메서드를 호출하여 3D 지도에 기본 마커를 추가하는 방법을 보여줍니다. 이 코드 샘플을 사용하려면 설정앱에 3D 지도 추가의 안내에 따라 기본 3D 지도로 Android 스튜디오 프로젝트를 설정하세요. 그런 다음 다음 코드를 MainActivity.kt 파일에 추가합니다.

// Add imports
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.SATELLITE)

googleMap3D.setCamera(
    camera {
        center = latLngAltitude {
            latitude = 52.51974795
            longitude = 13.40715553
            altitude = 150.0
        }
        heading = 252.7
        tilt = 79.0
        range = 1500.0
    }
)

// Add a marker using absolute altitude positioning
googleMap3D.addMarker(markerOptions {
    position = latLngAltitude {
        latitude = 52.519605780912585
        longitude = 13.406867190588198
        altitude = 150.0
    }
    label = "Absolute (150m)"
    altitudeMode = AltitudeMode.ABSOLUTE
    isExtruded = true
    isDrawnWhenOccluded = true
    collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
})

마커 클릭 이벤트 수신 대기

마커의 클릭 이벤트를 수신하려면 마커 객체에서 setClickListener를 호출합니다. 다음 예에서는 마커에 클릭 리스너를 설정하는 방법을 보여줍니다.

  marker.setClickListener {
      lifecycleScope.launch(Dispatchers.Main) {
          Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT)
              .show()
      }
  }
  

클릭 핸들러는 기본 스레드 (또는 UI)에서 실행되지 않습니다. UI를 변경하려면 (예: Toast 메시지 표시) 기본 스레드로 전환해야 합니다. Kotlin의 경우 lifecycleScope.launch(Dispatchers.Main)를 사용하여 이 작업을 수행할 수 있습니다.