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