Agrega una polilínea a un mapa

Selecciona la plataforma: Android iOS JavaScript

Una polilínea en un mapa 3D

En la siguiente muestra de código, se muestra cómo agregar una polilínea y posicionarla en el espacio 3D llamando al addPolyline 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.setCamera(
    camera {
        center = latLngAltitude {
            latitude = 40.029349
            longitude = -105.300354
            altitude = 1833.9
        }
        heading = 326.0
        tilt = 75.0
        range = 3757.0
    }
)
internal val trailLocations = """
    40.0201040, -105.2976640
    40.0201080, -105.2976450
    40.0201640, -105.2975120
    40.0202200, -105.2973740
    40.0202500, -105.2972760
    40.0202960, -105.2971410
    40.0203080, -105.2970990
    40.0203320, -105.2970070
    40.0203640, -105.2969400
    40.0203710, -105.2969250
    40.0203770, -105.2969220
    40.0203910, -105.2969130
    40.0203940, -105.2969120
    40.0204200, -105.2969130
    40.0204630, -105.2968910
    40.0205270, -105.2968280
    40.0206030, -105.2967570
    40.0206590, -105.2966100
    40.0206990, -105.2964870
""".trimIndent().split("\n").map {
    val (lat, lng) = it.split(",")
    latLngAltitude {
        latitude = lat.toDouble()
        longitude = lng.toDouble()
        altitude = 0.0  // The trail will be clamped to the ground
    }
}

val trailPolylineOptions = polylineOptions {
    coordinates = trailLocations
    strokeColor = Color.RED
    strokeWidth = 7.0
    altitudeMode = AltitudeMode.CLAMP_TO_GROUND
    zIndex = 5
    drawsOccludedSegments = true
}

googleMap3D.addPolyline(trailPolylineOptions)

Escucha los eventos de clic de la polilínea

Para escuchar los eventos de clic en una polilínea, llama a setClickListener en el objeto de polilínea. En el siguiente ejemplo, se muestra cómo configurar un objeto de escucha de clics en una polilínea:

polyline.setClickListener {
    lifecycleScope.launch(Dispatchers.Main) {
        Toast.makeText(this@PolylinesActivity, "Hiking time!", 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).