Il seguente esempio di codice mostra come aggiungere una polilinea e posizionarla nello spazio 3D chiamando il
addPolyline
metodo. Per utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurare e aggiungere una mappa 3D alla tua
app per configurare il tuo
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)
Ascoltare gli eventi di clic sulla polilinea
Per ascoltare gli eventi di clic su una polilinea, chiama setClickListener sull'oggetto polilinea. Il seguente esempio mostra come impostare un listener di 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 dell'interfaccia utente). Se vuoi apportare modifiche all'interfaccia utente (ad esempio mostrare un messaggio Toast), devi passare al thread principale. Per Kotlin, puoi farlo utilizzando lifecycleScope.launch(Dispatchers.Main).