การวางซ้อนบนพื้นคือการวางซ้อนบนแผนที่ที่เชื่อมโยงกับพิกัดละติจูด/ลองจิจูด ดังนั้นการวางซ้อนจะเลื่อนเมื่อคุณลากหรือซูมแผนที่
บทนำ
การวางซ้อนพื้นคือรูปภาพที่ตรึงไว้กับแผนที่ การวางซ้อนพื้นดินจะวางแนวกับพื้นผิวโลก แทนที่จะเป็นหน้าจอ ดังนั้นการหมุน เอียง หรือซูมแผนที่จะเปลี่ยน การวางแนวของรูปภาพ ซึ่งแตกต่างจากเครื่องหมาย
หากต้องการเพิ่มภาพซ้อนทับพื้น ให้สร้างออบเจ็กต์
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;
การนำภาพซ้อนทับออก
คุณนำภาพซ้อนทับภาคพื้นดินออกจากแผนที่ได้โดยตั้งค่าพร็อพเพอร์ตี้ GMSGroundOverlay
ของ map
เป็น 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