Khi thiết lập các thuộc tính điểm đánh dấu nâng cao cụ thể, bạn có thể theo dõi các sự kiện điểm đánh dấu như lượt 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 đề hoặc đoạn trích của điểm đánh dấu. Bạn 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 sự kiện điểm đánh dấu, hãy thêm
GMSMapViewDelegate
vàoview
. - Để tạo một đ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 đ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 thành phần hiển thị 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 của 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 điểm đánh dấu trên bản đồ bằng cử chỉ nhấn và giữ. Để tạo một điểm đánh dấu có thể kéo, hãy đặt thuộc tính GMSMarker.draggable
thành true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;