يوضّح نموذج الرمز البرمجي التالي كيفية إضافة خط متعدد الأضلاع وتحديد موضعه في المساحة الثلاثية الأبعاد من خلال استدعاء طريقة addPolyline. لاستخدام نموذج الرمز البرمجي هذا، اتّبِع التعليمات الواردة في الإعداد وإضافة خريطة ثلاثية الأبعاد إلى تطبيقك لإعداد مشروعك على Android Studio باستخدام خريطة ثلاثية الأبعاد أساسية. بعد ذلك، أضِف الرمز التالي إلى ملف 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)
الاستماع إلى الأحداث الناتجة عن النقر على خطوط متعددة الأضلاع
للاستماع إلى أحداث النقر على خط متعدد الأضلاع، استدعِ setClickListener على عنصر الخط المتعدد الأضلاع. يوضّح المثال التالي كيفية ضبط أداة معالجة النقرات على خط متعدّد الأضلاع:
polyline.setClickListener {
lifecycleScope.launch(Dispatchers.Main) {
Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show()
}
}
يُرجى العِلم أنّ معالج النقرات لا يتم تشغيله في سلسلة التعليمات الرئيسية (أو واجهة المستخدم). إذا أردت إجراء تغييرات على واجهة المستخدم (مثل عرض رسالة Toast)، عليك التبديل إلى سلسلة التعليمات الرئيسية. بالنسبة إلى Kotlin، يمكنك إجراء ذلك باستخدام
lifecycleScope.launch(Dispatchers.Main).