Khi thuộc tính điểm đánh dấu nâng cao cụ thể được đặt, bạn có thể theo dõi các sự kiện của điểm đánh dấu chẳng hạn như nhấn và cử chỉ. Nếu nhấn vào một điểm đánh dấu, người dùng có thể thấy thông tin bổ sung như tiêu đề của điểm đánh dấu hoặc đoạn trích. Người dùng cũng có thể di chuyển đ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 của điểm đánh dấu, hãy thêm
GMSMapViewDelegate
vàoview
của bạn. - Để làm cho điểm đánh dấu có thể kéo, đặ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 sự kiện điểm đánh dấu
Bạn có thể phản hồi sự kiện điểm đánh dấu bằng cách thêm
giao thức GMSMapViewDelegate
vào chế độ xem của bạn 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
GMSMapViewDelegate
cho giao thức và thêm đ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; }
Làm cho đ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
một cử chỉ nhấn và giữ. Để làm cho điểm đánh dấu có thể kéo, đặt GMSMarker.draggable
thành true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;