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

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