Il seguente esempio di codice
mostra come aggiungere una polilinea e posizionarla nello spazio 3D chiamando il metodo
addPolyline. Per utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurazione e
Aggiungere una mappa 3D all'app per configurare
il progetto Android Studio con una mappa 3D di base. Poi, aggiungi il seguente codice al file
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)
Ascolta gli eventi di clic sulla polilinea
Per rilevare gli eventi di clic su una polilinea, chiama setClickListener sull'oggetto polilinea. Il seguente esempio mostra come impostare un listener dei clic su
una polilinea:
polyline.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show() } }
Tieni presente che il gestore dei clic non viene eseguito sul thread principale (o UI). Se vuoi apportare modifiche all'UI (ad esempio mostrare un messaggio di notifica), devi passare al thread principale. Per Kotlin, puoi farlo utilizzando
lifecycleScope.launch(Dispatchers.Main).