Sự kiện đánh dấu và cử chỉ

Khi đặt 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 đánh dấu, chẳng hạn 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ể xem thêm thông tin như tiêu đề hoặc đoạn trích về đ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 đánh dấu, hãy thêm GMSMapViewDelegate vào view của bạn.
  • Để làm cho điểm đánh dấu có thể kéo được, 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 sự kiện đánh dấu

Bạn có thể phản hồi các sự kiện đánh dấu bằng cách thêm giao thức GMSMapViewDelegate vào khung hiển thị và triển khai lệnh gọi lại tương ứng. Ví dụ này xác định titlesnippet 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ữ. Để làm cho điểm đánh dấu có thể kéo được, hãy đặt thuộc tính GMSMarker.draggable thành true.

Swift

marker.draggable = true

Objective-C

marker.draggable = YES;