ผู้ใช้สามารถควบคุมการซูม การเอียง ตำแหน่ง และการหมุนของกล้องได้โดยใช้ท่าทางสัมผัสบนแผนที่ นอกจากนี้ คุณยังกำหนดค่ากล้องแบบเป็นโปรแกรมได้ด้วย

ตำแหน่งกล้อง
มุมมองแผนที่จำลองเป็นกล้องที่มองไปยังจุดที่เฉพาะเจาะจงในพื้นที่ ตำแหน่งและการวางแนวของกล้องจะกำหนดโดยพิกัดละติจูด/ลองจิจูด/ระดับความสูง (กำหนดเป็น "ศูนย์กลาง" ที่กล้องชี้ไป) ทิศทาง การเอียง ช่วง และการหมุน
ศูนย์กลาง (ละติจูด ลองจิจูด ระดับความสูง)
center กำหนดจุดที่เฉพาะเจาะจงในพื้นที่ 3 มิติที่กล้องกำลังสังเกตอยู่ ซึ่งระบุโดยใช้คลาส LatLngAltitude ซึ่งรวมค่าละติจูด ลองจิจูด และระดับความสูงเข้าด้วยกัน ซึ่งจะช่วยให้คุณจัดตำแหน่งจุดโฟกัสของกล้องในแบบ 3 มิติได้
ละติจูดต้องอยู่ระหว่าง -90 ถึง 90 องศา ลองจิจูดมีค่าระหว่าง -180 ถึง 180 องศา ระดับความสูงจะระบุเป็นเมตร และวิธีตีความระดับความสูงจะกำหนดโดย altitudeMode ของกล้อง (AltitudeMode.ABSOLUTE โดยค่าเริ่มต้น, AltitudeMode.RELATIVE_TO_GROUND หรือ AltitudeMode.RELATIVE_TO_MESH)
ส่วนหัว
heading ระบุทิศทางเข็มทิศของแผนที่ โดยวัดเป็นองศาตามเข็มนาฬิกาจากทิศเหนือจริง ทิศเหนือสอดคล้องกับ 0 องศา ทิศตะวันออกสอดคล้องกับ 90 องศา ทิศใต้สอดคล้องกับ 180 องศา และทิศตะวันตกสอดคล้องกับ 270 องศา
เอียง
การเอียงจะระบุมุมของกล้องที่สัมพันธ์กับแกนแนวตั้ง โดยวัดเป็นองศา การเอียง 0 องศาหมายความว่ากล้องชี้ลงตรงๆ ไปยังโลก (จุดต่ำสุด) การเอียง 90 องศาหมายความว่ากล้องชี้ไปในแนวนอนตามทิศทางที่ระบุโดยทิศทาง
ช่วง
ช่วงจะกำหนดระยะทางเป็นเมตรระหว่างตำแหน่งของกล้องกับศูนย์กลางของแผนที่ โดยช่วงอาจแตกต่างกันตั้งแต่ 0 เมตร (ใกล้มาก) ไปจนถึง 63 ล้านเมตร ซึ่งช่วยให้ดูได้ตั้งแต่ระยะใกล้มากไปจนถึงมุมมองทั่วโลกอย่างแท้จริง ซึ่งจะควบคุมลักษณะการ "ซูมเข้า" หรือ "ซูมออก" ของแผนที่ได้อย่างมีประสิทธิภาพ
ม้วนกระดาษ
การหมุนจะกำหนดมุมของกล้องที่สัมพันธ์กับเส้นขอบฟ้า โดยวัดเป็นองศา พารามิเตอร์นี้ใช้เพื่อสร้างเอฟเฟกต์ต่างๆ เช่น การเอียงเครื่องระหว่างการจำลองการบิน หรือแม้แต่การหมุนควงสว่านเต็มรูปแบบ โดยหมุนกล้องรอบแกนการมองเห็น
การควบคุมกล้องถ่ายรูป
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีควบคุมCamera โดยใช้โปรแกรมด้วยการเรียกใช้เมธอด setCamera ใน GoogleMap3D
หากต้องการใช้ตัวอย่างโค้ดนี้ ให้ทำตามวิธีการในการตั้งค่าและเพิ่มแผนที่ 3 มิติลงในแอปเพื่อตั้งค่าโปรเจ็กต์ Android Studio ด้วยแผนที่ 3 มิติพื้นฐาน จากนั้นเพิ่มโค้ดต่อไปนี้ลงในไฟล์ MainActivity.kt
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
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 = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
ตัวควบคุม UI
นอกจากท่าทางสัมผัสมาตรฐานแล้ว Maps 3D SDK สำหรับ Android ยังมีตัวควบคุม UI สำหรับจัดการตำแหน่งของกล้องด้วย
- ตัวควบคุมการซูมจะแสดงปุ่ม "+" และ "-" สำหรับเปลี่ยนระดับการซูมของแผนที่
- ตัวควบคุมการย้ายจะแสดงปุ่ม "←", "→", "↑" และ "↓" สำหรับเปลี่ยนจุดศูนย์กลางของแผนที่
- การควบคุมการหมุนจะแสดง "↺" และ "↻" เพื่อเปลี่ยนทิศทางของกล้อง
- การควบคุมการเอียงจะแสดง "^" และ "⌄" เพื่อเปลี่ยนการเอียงของกล้อง
- การควบคุมเข็มทิศจะระบุทิศเหนือของเข็มทิศ และช่วยให้รีเซ็ตกล้องเป็นทิศเหนือได้
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเปลี่ยนระดับการเข้าถึงของตัวควบคุม UI
```kotlin // เพิ่มการนำเข้า import com.google.android.gms.maps3d.UiControlSettings import com.google.android.gms.maps3d.model.CompassControl import com.google.android.gms.maps3d.model.TiltControl import com.google.android.gms.maps3d.model.ZoomControl</p> <p>...</p> <p>val uiControlSettings = googleMap3D.getUiControlSettings()</p> <p>// แสดงตัวควบคุม UI ที่ขอบด้านหลังของแผนที่ uiControlSettings?.setUiControlsPlacement( listOf(CompassControl(), ZoomControl(), TiltControl()), UiControlSettings.ControlPlacement.TRAILING )</p> <p>// ซ่อนตัวควบคุม UI ที่ขอบด้านหลังของแผนที่ uiControlSettings?.setUiControlsPlacement( emptyList(), UiControlSettings.ControlPlacement.TRAILING )