แผนที่จะแสดงใน API โดยคลาส GMSMapView
ซึ่งเป็นคลาสย่อยของ UIView
แผนที่เป็นออบเจ็กต์ที่สำคัญที่สุดใน Maps SDK สำหรับ iOS และมีเมธอดที่จำเป็นสำหรับการเพิ่ม การนำออก
และการจัดการออบเจ็กต์อื่นๆ เช่น เครื่องหมายและเส้นหลายเส้น
บทนำ
Maps SDK สำหรับ iOS ช่วยให้คุณแสดงแผนที่ Google ในแอปพลิเคชัน iOS ได้ แผนที่เหล่านี้มีลักษณะเหมือนกับแผนที่ที่คุณเห็นในแอป Google Maps สำหรับ iOS และ SDK จะแสดงฟีเจอร์ต่างๆ ที่เหมือนกัน
นอกจากฟังก์ชันการทำงานของการแมปแล้ว API ยังรองรับการโต้ตอบต่างๆ ที่สอดคล้องกับโมเดล UI ของ iOS ด้วย เช่น คุณตั้งค่าการโต้ตอบกับแผนที่ได้โดยกำหนดตัวตอบสนองที่ตอบโต้ท่าทางของผู้ใช้ เช่น การแตะและการแตะสองครั้ง
คลาสหลักเมื่อทำงานกับออบเจ็กต์ Map คือคลาส GMSMapView
GMSMapView
จะจัดการการดำเนินการต่อไปนี้โดยอัตโนมัติ
- กำลังเชื่อมต่อกับบริการ Google Maps
- กำลังดาวน์โหลดการ์ดแผนที่
- การแสดงการ์ดบนหน้าจออุปกรณ์
- แสดงตัวควบคุมต่างๆ เช่น การเลื่อนและซูม
- ตอบสนองต่อท่าทางสัมผัสการแพนและซูมด้วยการเลื่อนแผนที่และซูมเข้าหรือออก
- ตอบสนองต่อท่าทางสัมผัสด้วย 2 นิ้วโดยการเอียงมุมมองของแผนที่
นอกเหนือจากการดำเนินการอัตโนมัติเหล่านี้แล้ว คุณยังควบคุมลักษณะการทำงานและ
ลักษณะที่ปรากฏของแผนที่ได้ผ่านพร็อพเพอร์ตี้และเมธอดที่คลาส GMSMapView
แสดง ใช้ GMSMapView
เพื่อเพิ่มและนำเครื่องหมาย ภาพซ้อนทับภาคพื้นดิน และเส้นหลายส่วนออก เปลี่ยนประเภทแผนที่ที่แสดง และควบคุมสิ่งที่แสดงบนแผนที่ผ่านคลาส GMSCameraPosition
สร้างแผนที่ด้วย SwiftUI
SwiftUI มีวิธีเพิ่มเติมในการสร้าง UI โดยใช้แนวทางแบบประกาศ คุณ บอก SwiftUI ว่าต้องการให้มุมมองมีลักษณะอย่างไรพร้อมกับสถานะต่างๆ ของมุมมองนั้น แล้วระบบจะจัดการส่วนที่เหลือให้ SwiftUI จะจัดการการอัปเดตมุมมองทุกครั้งที่ สถานะพื้นฐานเปลี่ยนแปลงเนื่องจากเหตุการณ์หรือการกระทำของผู้ใช้
Maps SDK สำหรับ iOS สร้างขึ้นบน UIKit
และไม่มีมุมมองที่เข้ากันได้กับ SwiftUI การเพิ่มแผนที่ใน SwiftUI ต้องเป็นไปตาม UIViewRepresentable
หรือ UIViewControllerRepresentable
ดูข้อมูลเพิ่มเติมได้ที่
Codelab adding a map to your iOS app with
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
object เพิ่มเติมได้
ขั้นตอนถัดไป
หลังจากทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณจะกำหนดการตั้งค่าแผนที่ได้