Aggiungere una polilinea a una mappa

Seleziona la piattaforma: Android iOS JavaScript

Una polilinea su una mappa 3D

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).