การวางซ้อนภาคพื้นดินคือการวางซ้อนบนแผนที่ที่เชื่อมโยงกับละติจูด/ลองจิจูด พิกัดเพื่อให้เคลื่อนที่เมื่อคุณลากหรือซูมแผนที่
บทนำ
ภาพวางซ้อนพื้นดินคือภาพที่ถูกยึดติดกับแผนที่ เลิกชอบ เครื่องหมาย การวางซ้อนพื้นมีทิศทางเป็นพื้นผิวโลก การหมุน เอียง หรือการซูมแผนที่จึงจะเปลี่ยนไป การวางแนวรูปภาพ
หากต้องการเพิ่มการวางซ้อนพื้น ให้สร้างวัตถุ GMSGroundOverlay
ที่กำหนดทั้ง 2 แบบ
ไอคอนและขอบเขต การไม่ระบุจะทำให้มีการวางซ้อนพื้น
ไม่ให้ปรากฏบนแผนที่ คุณสามารถเลือกระบุการตั้งค่าเพิ่มเติม
จะส่งผลต่อการวางตำแหน่งของภาพบนแผนที่ เมื่อคุณได้กำหนด
ตัวเลือกที่จำเป็น ให้ตั้งค่าพร็อพเพอร์ตี้ map
ของออบเจ็กต์นี้เพื่อเพิ่มการวางซ้อน
การเพิ่มการวางซ้อน
- สร้างอินสแตนซ์ของออบเจ็กต์
GMSGroundOverlay
ใหม่ - ตั้งค่าพร็อพเพอร์ตี้
icon
เป็นอินสแตนซ์UIImage
- ตั้งค่าพร็อพเพอร์ตี้
bounds
เป็นอินสแตนซ์GMSCoordinateBounds
ขอบเขตหมายถึงพื้นที่ตะวันตกเฉียงใต้และมุมตะวันออกเฉียงเหนือของรูปภาพ - ตั้งค่าพร็อพเพอร์ตี้ที่ไม่บังคับ เช่น
bearing
และzoomLevel
ตามต้องการ - ตั้งค่าคุณสมบัติ
map
- รูปภาพจะปรากฏในแผนที่
ตัวอย่างด้านล่างแสดงวิธีการเพิ่มพื้นที่ซ้อนทับลงในแท็กที่มีอยู่
ออบเจ็กต์ GMSMapView
รายการ
Swift
let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg let icon = UIImage(named: "newark_nj_1922") let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView
Objective-C
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655); CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544); GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"]; GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView;
การนำการวางซ้อนออก
คุณสามารถนำพื้นที่วางซ้อนออกจากแผนที่ได้โดยตั้งค่า
พร็อพเพอร์ตี้ map
ของ GMSGroundOverlay
ไปยัง nil
หรือคุณสามารถนำออกทั้งหมด
ของการวางซ้อน (รวมถึงการวางซ้อนภาคพื้นดินในปัจจุบันบนแผนที่โดยเรียกใช้
GMSMapView
clear
วิธี
Swift
mapView.clear()
Objective-C
[mapView clear];
ถ้าคุณต้องการแก้ไขพื้นดินเมื่อคุณได้เพิ่มพื้นที่แล้ว
แผนที่ ตรวจดูว่าคุณยึดวัตถุ GMSGroundOverlay
ไว้ คุณสามารถ
แก้ไขการวางซ้อนพื้นในภายหลังโดยทำการเปลี่ยนแปลงวัตถุนี้
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
กิจกรรม
คุณสามารถฟังเหตุการณ์ที่เกิดขึ้นบนแผนที่ได้ เช่น เมื่อผู้ใช้แตะ
ซ้อนทับ หากต้องการฟังเหตุการณ์ คุณต้องติดตั้งใช้งาน
GMSMapViewDelegate
โปรดดู
เกี่ยวกับเหตุการณ์และรายการวิธีการใน
GMSMapViewDelegate