En el siguiente ejemplo de código, se muestra cómo agregar una polilínea y posicionarla en el espacio 3D llamando al método addPolyline. Para usar este ejemplo de código, sigue las instrucciones en Configuración y Agrega un mapa en 3D a tu app para configurar tu proyecto de Android Studio con un mapa básico en 3D. 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)
Detecta eventos de clic en polilíneas
Para escuchar eventos de clic en una polilínea, llama a setClickListener en el objeto de polilínea. En el siguiente ejemplo, se muestra cómo establecer 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 (por ejemplo, mostrar un mensaje Toast), debes cambiar al subproceso principal. En Kotlin, puedes hacerlo con lifecycleScope.launch(Dispatchers.Main).