Maps จะแสดงใน API โดยคลาส GMSMapView
ซึ่งเป็นคลาสย่อยของ UIView
แผนที่เป็นออบเจ็กต์ที่สําคัญที่สุดใน Maps SDK สําหรับ iOS และเสนอวิธีการที่จําเป็นสําหรับการเพิ่ม นําออก และจัดการออบเจ็กต์อื่นๆ เช่น ตัวทําเครื่องหมายและเส้นประกอบ
ข้อมูลเบื้องต้น
Maps SDK สําหรับ iOS ช่วยให้คุณแสดง Google Maps ในแอปพลิเคชัน 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
หากแผนที่จะแสดงเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น โปรดตรวจสอบว่าสร้างขึ้นภายในเมธอดloadView
สร้างออบเจ็กต์
GMSCameraPosition
ที่ระบุระดับศูนย์กลางและการซูมของแผนที่ เมื่อสร้างอินสแตนซ์ออบเจ็กต์GMSMapView
คุณต้องส่งออบเจ็กต์GMSCameraPosition
เป็นพารามิเตอร์ที่จําเป็นสร้างและสร้างอินสแตนซ์
GMSMapView
โดยใช้เมธอดGMSMapView
mapWithFrame:
หากจะใช้แผนที่นี้เป็นมุมมองเดียวของตัวควบคุมดู คุณสามารถใช้CGRectZero
เป็นเฟรมของแผนที่ได้ ระบบจะปรับขนาดแผนที่โดยอัตโนมัติตั้งค่าออบเจ็กต์
GMSMapView
เป็นมุมมองของตัวควบคุมมุมมอง เช่นself.view = mapView;
ตัวอย่างด้านล่างเป็นการเพิ่มแผนที่โดยมีจุดศูนย์กลางอยู่ที่สิงคโปร์ เมือง
Swift
import GoogleMaps class MapObjects : UIViewController { override func viewDidLoad() { super.viewDidLoad() let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12) let mapView = GMSMapView(frame: .zero, camera: camera) self.view = mapView } }
Objective-C
#import "MapObjects.h" @import GoogleMaps; @implementation MapObjects - (void)viewDidLoad { [super viewDidLoad]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; self.view = mapView; } @end
เมื่อทําตามขั้นตอนเหล่านี้แล้ว คุณอาจกําหนดค่าออบเจ็กต์ GMSMapView
เพิ่มเติมได้
ขั้นตอนถัดไป
หลังจากทําตามขั้นตอนเหล่านี้แล้ว ให้กําหนดการตั้งค่าแผนที่