Maps แสดงไว้ใน API โดยเป็นคลาส GMSMapView
ซึ่งเป็นคลาสย่อยของ UIView
แผนที่เป็นวัตถุที่สำคัญที่สุดใน Maps SDK สำหรับ iOS และบอกวิธีการที่จำเป็นในการเพิ่ม นำออก และจัดการวัตถุอื่นๆ เช่น เครื่องหมายและเส้นประกอบ
เกริ่นนำ
Maps SDK สำหรับ iOS ช่วยให้คุณแสดงแผนที่ของ Google ในแอปพลิเคชัน iOS ได้ แผนที่เหล่านี้มีลักษณะเหมือนกับแผนที่ที่คุณเห็นในแอป Google Maps สำหรับ iOS และ SDK แสดงคุณลักษณะหลายอย่างที่เหมือนกัน
นอกจากฟังก์ชันการแมปแล้ว API ยังรองรับการโต้ตอบที่หลากหลายที่สอดคล้องกับโมเดล UI ของ iOS ตัวอย่างเช่น คุณสามารถตั้งค่าการโต้ตอบกับแผนที่โดยกำหนดการตอบสนองที่ตอบสนองต่อท่าทางสัมผัสของผู้ใช้ เช่น การแ��ะและการแตะสองครั้ง
คลาสคีย์เมื่อทำงานกับออบเจ็กต์แผนที่คือคลาส GMSMapView
GMSMapView
จะจัดการการดำเนินการต่อไปนี้โดยอัตโนมัติ
- กำลังเชื่อมต่อกับบริการ Google Maps
- กำลังดาวน์โหลดชิ้นส่วนแผนที่
- กำลังแสดงการ์ดบนหน้าจออุปกรณ์
- กำลังแสดงการควบคุมต่างๆ เช่น เลื่อนและซูม
- การตอบสนองต่อท่าทางสัมผัสการแพนและซูมด้วยการเลื่อนแผนที่และการซูมเข้าหรือออก
- ตอบสนองท่าทางสัมผัสแบบ 2 นิ้วโดยการเอียงมุมการดูของแผนที่
นอกเหนือจากการดำเนินการอัตโนมัติเหล่านี้แล้ว คุณยังควบคุมลักษณะการทำงานและรูปลักษณ์ของแผนที่ผ่านพร็อพเพอร์ตี้และเมธอดที่แสดงโดยคลาส GMSMapView
ได้ GMSMapView
ช่วยให้คุณสามารถเพิ่มและลบเครื่องหมาย การวางซ้อนพื้น และเส้นประกอบ เปลี่ยนประเภทของแผนที่ที่แสดง และควบคุมสิ่งที่แสดงบนแผนที่ผ่านคลาส GMSCameraPosition
สร้างแผนที่ด้วย SwiftUI
SwiftUI เป็นอีกวิธีหนึ่งในการสร้าง UI โดยใช้วิธีการแบบประกาศ คุณต้องบอก SwiftUI ว่าคุณต้องการให้มุมมองมีลักษณะอย่างไรเมื่อมองรวมกับสถานะต่างๆ ทั้งหมด จากนั้นระบบจะจัดการส่วนที่เหลือ แฮนเดิล SwiftUI จะอัปเดตมุมมองทุกครั้งที่สถานะสำคัญเปลี่ยนแปลงเนื่องจากเหตุการณ์หรือการกระทำของผู้ใช้
Maps SDK สำหรับ iOS สร้างต่อยอดมาจาก UIKit
และไม่มีมุมมองที่ใช้ร่วมกับ SwiftUI ได้ การเพิ่มแผนที่ใน SwiftUI ต้องเป็นไปตาม UIViewRepresentable
หรือ UIViewControllerRepresentable
หากต้องการดูข้อมูลเพิ่มเติม โปรดดู
Codelab ที่เพิ่มแผนที่ลงในแอป iOS ด้วย
SwiftUI
การเพิ่มแผนที่
ขั้นตอนพื้นฐานในการเพิ่มแผนที่มีดังนี้
หากต้องการรับ SDK ให้รับคีย์ API และเพิ่ม��ฟรมเวิร์กที่จำเป็น โปรดทำตามขั้นตอนต่อไปนี้
ใน
AppDelegate
ให้ระบุคีย์ API กับเมธอดคลาสprovideAPIKey:
ในGMSServices
สร้างหรืออัปเดต
ViewController
หากแผนที่แสดงขึ้นเมื่อตัวควบคุมมุมมองนี้ปรากฏให้เห็น ให้ตรวจสอบว่าได้สร้างตัวควบคุมภายในเมธอดviewDidLoad
เมื่อเริ่มมุมมองแผนที่ ให้ตั้งค่าตัวเลือกการกำหนดค่าด้วย
GMSMapViewOptions
พร็อพเพอร์ตี้ประกอบด้วยframe
,camera
,mapID
,backgroundColor
หรือscreen
ตั้งค่าพร็อพเพอร์ตี้ ตัวเลือกแผนที่
camera
ด้วยออบเจ็กต์GMSCameraPosition
ซึ่งระบุระดับศูนย์กลางและการซูมของแผนที่สร้างและสร้างอินสแตนซ์ชั้นเรียน
GMSMapView
โดยใช้เมธอดGMSMapView
options:
หากจะใช้แผนที่นี้เป็นมุมมองอย่างเดียวของตัวควบคุมมุมมอง คุณสามารถใช้ตัวเลือกแผนที่frame
ค่าเริ่มต้นCGRectZero
เป็นมุมมองframe
ได้ แผนที่จะถูกปรับขนาดโดยอัตโนมัติตั้งค่าออบเจ็กต์
GMSMapView
เป็นมุมมองของตัวควบคุมมุมมอง ตัวอย่างเช่นself.view = mapView;
ตัวอย่างด้านล่างเพิ่มแผนที่ซึ่งมีศูนย์กลางอยู่ที่ใจกลางเมืองสิงคโปร์ลงในแอป
Swift
import GoogleMaps class MapObjects : UIViewController { override func viewDidLoad() { super.viewDidLoad() let options = GMSMapViewOptions() options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) options.frame = self.view.bounds; let mapView = GMSMapView(options:options) self.view = mapView } }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; self.view = mapView; }
เมื่อทำตามขั้นตอนเหล่านี้แล้ว คุณจะกำหนดค่าออบเจ็กต์ GMSMapView
เพิ่มเติมได้
ขั้นตอนถัดไป
หลังจากทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณสามารถกำหนดการตั้งค่าแผนที่ได้