בדוגמת הקוד הבאה אפשר לראות איך מוסיפים קו פוליגוני וממקמים אותו במרחב תלת-ממדי באמצעות הפעלת השיטה 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 באובייקט של הקו הפוליגוני. בדוגמה הבאה אפשר לראות איך מגדירים רכיב click listener בקו פוליגוני:
polyline.setClickListener {
lifecycleScope.launch(Dispatchers.Main) {
Toast.makeText(this@PolylinesActivity, "Hiking time!", Toast.LENGTH_SHORT).show()
}
}
חשוב לזכור שה-click handler לא פועל ב-thread הראשי (או ב-thread של ממשק המשתמש). אם רוצים לבצע שינויים בממשק המשתמש (למשל, להציג הודעת Toast), צריך לעבור ל-Main thread. ב-Kotlin, אפשר לעשות את זה באמצעות lifecycleScope.launch(Dispatchers.Main).