Khi đặt các thuộc tính nâng cao cụ thể của điểm đánh dấu, bạn có thể theo dõi các sự kiện điểm đánh dấu như thao tác nhấn và cử chỉ. Nếu một điểm đánh dấu được nhấn, người dùng có thể xem thêm thông tin như tiêu đề hoặc đoạn mã của điểm đánh dấu. Người dùng cũng có thể di chuyển các điểm đánh dấu có thể kéo bằng cử chỉ nhấn và giữ.
- Để theo dõi các sự kiện điểm đánh dấu, hãy thêm
GMSMapViewDelegatevàoview. - Để tạo điểm đánh dấu có thể kéo, hãy đặt thuộc tính
GMSMarker.draggable. - Để đặt văn bản mô tả cho một điểm đánh dấu, hãy sử dụng thuộc tính
GMSMarker.title.
Phản hồi các sự kiện điểm đánh dấu
Bạn có thể phản hồi các sự kiện điểm đánh dấu bằng cách thêm
giao thức GMSMapViewDelegate vào chế độ xem và
triển khai lệnh gọi lại tương ứng. Ví dụ này xác định title và
snippet cho một điểm đánh dấu đã chọn.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { if let title = marker.title { if let snippet = marker.snippet { print("marker title: \(title): snippet: \(snippet)") } } return true }
Objective-C
// MARK: GMSMapViewDelegate - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker { if (marker.title && marker.snippet) { NSLog(@"marker with title:%@ snippet: %@", marker.title, marker.snippet) } return YES; }
Kiểm soát chế độ hiển thị điểm đánh dấu theo mức thu phóng bản đồ
Để kiểm soát chế độ hiển thị của GMSMarker, hãy triển khai giao thức
GMSMapViewDelegate và thêm một điều kiện để đặt
GMSMarker.map.
Swift
// MARK: GMSMapViewDelegate func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) { marker.map = position.zoom >= 14 ? mapView : nil }
Objective-C
// MARK: GMSMapViewDelegate - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position { marker.map = position.zoom >= 14 ? mapView : nil; }
Tạo điểm đánh dấu có thể kéo
Khi bạn bật thuộc tính draggable, người dùng có thể kéo các điểm đánh dấu trên bản đồ bằng
cử chỉ nhấn và giữ. Để tạo điểm đánh dấu có thể kéo, hãy đặt GMSMarker.draggable
thuộc tính thành true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;