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