توضّح عيّنة الرمز البرمجي التالية كيفية إضافة خط متعدد الأضلاع وتحديد موضعه في المساحة الثلاثية الأبعاد من خلال استدعاء الطريقة 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).