Haritaya çoklu çizgi ekleme

Platform seçin: Android iOS JavaScript

3D haritada çoklu çizgi

Aşağıdaki kod örneğinde, addPolyline yöntemini çağırarak çoklu çizgi ekleme ve bunu 3D uzayda konumlandırma işlemi gösterilmektedir. Bu kod örneğini kullanmak için Kurulum ve Uygulamanıza 3D harita ekleme bölümlerindeki talimatları uygulayarak Android Studio projenizi temel bir 3D haritayla oluşturun. Ardından, MainActivity.kt dosyasına aşağıdaki kodu ekleyin:

// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.latLngAltitude

...

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
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)

Çoklu çizgi tıklama etkinliklerini dinleme

Bir çoklu çizgi üzerindeki tıklama etkinliklerini dinlemek için çoklu çizgi nesnesinde setClickListener yöntemini çağırın. Aşağıdaki örnekte, çoklu çizgi üzerinde tıklama dinleyicisinin nasıl ayarlanacağı gösterilmektedir:

polyline.setClickListener {
    lifecycleScope.launch(Dispatchers.Main) {
        Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show()
    }
}

Tıklama işleyicinin ana (veya kullanıcı arayüzü) iş parçacığında çalışmadığını unutmayın. Kullanıcı arayüzünde değişiklik yapmak istiyorsanız (ör. Toast mesajı gösterme) ana iş parçacığına geçmeniz gerekir. Kotlin'de bunu lifecycleScope.launch(Dispatchers.Main) kullanarak yapabilirsiniz.