Maps จะแสดงใน API ด้วยคลาส GMSMapView ซึ่งเป็น
คลาสย่อยของ UIView. แผนที่เป็นออบเจ็กต์ที่สำคัญที่สุดใน Maps SDK สำหรับ iOS และมีเมธอดที่จำเป็นสำหรับการเพิ่ม การนำออก และการจัดการออบเจ็กต์อื่นๆ เช่น ตัวทำเครื่องหมายและเส้นหลายเหลี่ยม
บทนำ
Maps SDK สำหรับ iOS ช่วยให้คุณแสดง Google Map ในแอปพลิเคชัน iOS ได้ แผนที่เหล่านี้มีลักษณะเหมือนกับแผนที่ที่คุณเห็นใน แอป Google Maps สำหรับ iOS และ SDK มีฟีเจอร์ต่างๆ มากมายเหมือนกัน
นอกจากฟังก์ชันการทำงานของ Maps แล้ว API ยังรองรับการโต้ตอบที่หลากหลายซึ่งสอดคล้องกับโมเดล UI ของ iOS ด้วย ตัวอย่างเช่น คุณสามารถตั้งค่าการโต้ตอบกับแผนที่ได้โดยกำหนดตัวรับสัญญาณที่ตอบสนองต่อท่าทางสัมผัสของผู้ใช้ เช่น การแตะและการแตะสองครั้ง
คลาสหลักเมื่อทำงานกับออบเจ็กต์ Map คือคลาส GMSMapView
GMSMapView จะจัดการการดำเนินการต่อไปนี้โดยอัตโนมัติ
- การเชื่อมต่อกับบริการ Google Maps
- การดาวน์โหลดการ์ดแผนที่
- การแสดงการ์ดบนหน้าจออุปกรณ์
- การแสดงตัวควบคุมต่างๆ เช่น การเลื่อนและการซูม
- การตอบสนองต่อท่าทางสัมผัสการเลื่อนและการซูมด้วยการย้ายแผนที่และซูมเข้าหรือออก
- การตอบสนองต่อท่าทางสัมผัส 2 นิ้วด้วยการเอียงมุมมองของแผนที่
นอกจากการดำเนินการอัตโนมัติเหล่านี้แล้ว คุณยังควบคุมลักษณะการทำงานและลักษณะที่ปรากฏของแผนที่ผ่านพร็อพเพอร์ตี้และเมธอดที่คลาส GMSMapView แสดงได้ด้วย ใช้ GMSMapView เพื่อเพิ่มและนำตัวทำเครื่องหมาย ภาพซ้อนทับบนพื้น
และเส้นหลายเหลี่ยมออก เปลี่ยนประเภทแผนที่ที่แสดง และควบคุม
สิ่งที่แสดงบนแผนที่ผ่านคลาส GMSCameraPosition
สร้าง Maps ด้วย SwiftUI
SwiftUI มีวิธีเพิ่มเติมในการสร้าง UI โดยใช้วิธีการประกาศ คุณบอก SwiftUI ว่าต้องการให้มุมมองมีลักษณะอย่างไร รวมถึงสถานะต่างๆ ทั้งหมดของมุมมองนั้น แล้วระบบจะจัดการส่วนที่เหลือ SwiftUI จะจัดการการอัปเดตมุมมองทุกครั้งที่สถานะพื้นฐานเปลี่ยนแปลงเนื่องจากเหตุการณ์หรือการดำเนินการของผู้ใช้
Maps SDK สำหรับ iOS สร้างขึ้นบน UIKit และไม่มีมุมมองที่เข้ากันได้กับ SwiftUI การเพิ่ม Maps ใน SwiftUI ต้องเป็นไปตาม UIViewRepresentable หรือ UIViewControllerRepresentable ดูข้อมูลเพิ่มเติมได้ที่
Codelab การเพิ่ม Maps ลงในแอป iOS ด้วย
SwiftUI
เพิ่มแผนที่
ขั้นตอนพื้นฐานในการเพิ่มแผนที่มีดังนี้
หากต้องการรับ SDK, รับคีย์ API และเพิ่มเฟรมเวิร์กที่จำเป็น ให้ทำตามขั้นตอนในหัวข้อต่อไปนี้
ใน
AppDelegateให้ระบุคีย์ API ของคุณไปยังเมธอดคลาสprovideAPIKey:ในGMSServicesสร้างหรืออัปเดต
ViewControllerหากแผนที่แสดงขึ้นเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น โปรดสร้างแผนที่ภายในเมธอดviewDidLoadเมื่อเริ่มต้นมุมมองแผนที่ ให้ตั้งค่าตัวเลือกการกำหนดค่าด้วย
GMSMapViewOptionsพร็อพเพอร์ตี้ประกอบด้วยframe,camera,mapID,backgroundColorหรือscreenตั้งค่าพร็อพเพอร์ตี้ ตัวเลือกแผนที่
cameraด้วยออบเจ็กต์GMSCameraPositionซึ่งจะระบุศูนย์กลางและระดับการซูมของแผนที่สร้างและเริ่มต้นคลาส
GMSMapViewโดยใช้เมธอดoptions:ของGMSMapViewหากจะใช้แผนที่นี้เป็นมุมมองเดียวของตัวควบคุมมุมมอง คุณสามารถใช้ค่าเริ่มต้น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 เพิ่มเติมได้
ขั้นตอนถัดไป
หลังจากทำตามขั้นตอนเหล่านี้แล้ว คุณจะกำหนดค่าการตั้งค่าแผนที่ได้