Cómo agregar un marcador a un mapa

Selecciona la plataforma: Android iOS JavaScript

Marcadores en un mapa en 3D

En el siguiente ejemplo de código, se muestra cómo agregar un marcador básico a un mapa 3D llamando al addMarker método. Para usar esta muestra de código, sigue las instrucciones que se indican en Configura y agrega un mapa 3D a tu app para configurar tu proyecto de Android Studio con un mapa 3D básico. Luego, agrega el siguiente código al archivo 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
})

Escucha los eventos de clic en el marcador

Para escuchar los eventos de clic en un marcador, llama a setClickListener en el objeto del marcador. En el siguiente ejemplo, se muestra cómo configurar un objeto de escucha de clic en un marcador:

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

Ten en cuenta que el controlador de clics no se ejecuta en el subproceso principal (o de IU). Si deseas realizar cambios en la IU (como mostrar un mensaje de Toast), debes cambiar al subproceso principal. En Kotlin, puedes hacerlo con lifecycleScope.launch(Dispatchers.Main).