การวางซ้อนพื้น

เลือกแพลตฟอร์ม: Android iOS JavaScript

การวางซ้อนพื้นเป็นภาพซ้อนทับบนแผนที่ที่เชื่อมโยงกับพิกัดละติจูด/ลองจิจูด เพื่อให้มีการเคลื่อนไหวเมื่อคุณลากหรือซูมแผนที่

ข้อมูลเบื้องต้น

การวางซ้อนพื้นเป็นรูปภาพที่กําหนดตายตัวบนแผนที่ การวางซ้อนพื้นจะแตกต่างจากพื้นผิวของเครื่องหมายที่อยู่ในระดับเดียวกับพื้นผิวโลก ไม่ใช่พื้นที่ของหน้าจอ ดังนั้นการหมุน การเอียง หรือการซูมแผนที่จะเปลี่ยนทิศทางของภาพ

หากต้องการเพิ่มการวางซ้อนพื้น ให้สร้างออบเจ็กต์ GMSGroundOverlay ที่กําหนดทั้งไอคอนและขอบเขต การไม่เลือกทั้งสองแบบจะทําให้ภาพซ้อนทับของพื้น ไม่ปรากฏบนแผนที่ คุณสามารถเลือกระบุการตั้งค่าเพิ่มเติม ที่จะส่งผลต่อการวางตําแหน่งภาพบนแผนที่ เมื่อคุณกําหนดตัวเลือกที่จําเป็นแล้ว ให้ตั้งค่าพร็อพเพอร์ตี้ map ของออบเจ็กต์นี้เพื่อเพิ่มโฆษณาซ้อนทับ

การเพิ่มการวางซ้อน

  1. สร้างอินสแตนซ์ออบเจ็กต์ GMSGroundOverlay ใหม่
  2. ตั้งค่าพร็อพเพอร์ตี้ icon เป็นอินสแตนซ์ UIImage
  3. ตั้งค่าพร็อพเพอร์ตี้ bounds เป็นอินสแตนซ์ GMSCoordinateBounds ขอบเขตนี้แสดงถึงมุมตะวันตกเฉียงใต้และมุมตะวันออกเฉียงเหนือของรูปภาพ
  4. ตั้งค่าพร็อพเพอร์ตี้ที่ไม่บังคับ เช่น bearing และ zoomLevel ได้ตามต้องการ
  5. ตั้งค่าพร็อพเพอร์ตี้ 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