افزودن چندخطی به نقشه

پلاتفرم را انتخاب کنید: Android iOS JavaScript

چندخطی در نقشه سه‌بعدی

نمونه کد زیر نشان می‌دهد که چگونه می‌توان چندخطی را اضافه کرد و آن را با فراخوانی روش addPolyline در فضای سه‌بعدی قرار داد. برای استفاده از این نمونه کد، دستورالعمل‌های موجود در راه‌اندازی و افزودن نقشه سه‌بعدی به برنامه را دنبال کنید تا پروژه Android Studio خود را با نقشه سه‌بعدی پایه راه‌اندازی کنید. سپس، کد زیر را به فایل MainActivity.kt اضافه کنید:

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

گوش دادن به رویدادهای کلیک چندخطی

برای گوش دادن به رویدادهای کلیک در چندخطی، setClickListener را در شیء چندخطی فراخوانی کنید. مثال زیر نشان می‌دهد که چگونه می‌توان یک شنونده کلیک را روی یک چندخطی تنظیم کرد:

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

توجه داشته باشید که گرداننده کلیک در رشته «اصلی» (یا میانای کاربر) اجرا نمی‌شود. اگر می‌خواهید تغییراتی در واسط کاربر ایجاد کنید (مثلاً نمایش پیام Toast)، باید به رشته اصلی بروید. برای Kotlin، می‌توانید این کار را بااستفاده از lifecycleScope.launch(Dispatchers.Main) انجام دهید.