Lớp phủ mặt đất là các lớp phủ trên bản đồ được gắn với vĩ độ/kinh độ để chúng di chuyển khi bạn kéo hoặc thu phóng bản đồ.
Giới thiệu
Lớp phủ mặt đất là hình ảnh được cố định vào bản đồ. Bỏ thích điểm đánh dấu, các lớp mặt đất được định hướng dựa vào bề mặt Trái đất thay vì màn hình, nên thao tác xoay, nghiêng hoặc thu phóng bản đồ sẽ thay đổi hướng của hình ảnh.
Để thêm lớp phủ mặt đất, hãy tạo một đối tượng GMSGroundOverlay
xác định cả hai
một biểu tượng và một ranh giới. Không chỉ định rõ một trong hai thiết bị sẽ gây ra lớp phủ mặt đất
không xuất hiện trên bản đồ. Bạn có thể tuỳ ý chỉ định các chế độ cài đặt bổ sung
sẽ ảnh hưởng đến vị trí của hình ảnh trên bản đồ. Sau khi xác định được
các tuỳ chọn cần thiết, hãy đặt thuộc tính map
của đối tượng này để thêm lớp phủ.
Thêm lớp phủ
- Tạo thực thể cho đối tượng
GMSGroundOverlay
mới - Đặt thuộc tính
icon
thành một thực thể củaUIImage
. - Đặt thuộc tính
bounds
thành một thực thể củaGMSCoordinateBounds
. Chiến lược phát hành đĩa đơn ranh giới thể hiện góc phía tây nam và đông bắc của hình ảnh. - Đặt các thuộc tính không bắt buộc, chẳng hạn như
bearing
vàzoomLevel
, nếu muốn. - Đặt thuộc tính
map
– hình ảnh sẽ xuất hiện trên bản đồ.
Ví dụ dưới đây minh hoạ cách thêm lớp phủ mặt đất cho một lớp phủ hiện có
Đối tượng 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;
Xoá lớp phủ
Bạn có thể xoá lớp phủ mặt đất khỏi bản đồ bằng cách đặt
Thuộc tính map
của GMSGroundOverlay
với nil
. Ngoài ra, bạn có thể xoá tất cả
của các lớp phủ (bao gồm các lớp phủ trên mặt đất hiện có trên bản đồ bằng cách gọi
GMSMapView
phương thức clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Nếu bạn muốn sửa đổi lớp phủ mặt đất sau khi đã thêm lớp phủ đó vào
bản đồ, hãy nhớ giữ đối tượng GMSGroundOverlay
. Bạn có thể
sửa đổi lớp phủ mặt đất sau bằng cách thay đổi đối tượng này.
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;
Sự kiện
Bạn có thể nghe các sự kiện xảy ra trên bản đồ, chẳng hạn như khi người dùng nhấn vào một
lớp phủ. Để nghe sự kiện, bạn phải triển khai
Giao thức GMSMapViewDelegate
. Xem
hướng dẫn về sự kiện và danh sách các phương pháp trên
GMSMapViewDelegate
.