是否可以通过GMSPolygon didTapOverlay委派方法更改GMSMapViewDelegate .fillColor属性?这是委托方法:

func mapView(mapView: GMSMapView, didTapOverlay overlay: GMSOverlay)

我的问题是GMSPolygonGMSOverlay继承,并且叠加层没有fillColor属性。我想要实现的结果是当用户点击多边形时更改其颜色

谢谢

最佳答案

之前我遇到过同样的情况(我当时使用的是Objective-C)。

我的解决方案是生成唯一的ID(随机字符串或数字),然后将其设置为每个GMSPolygons的title属性。

以下代码是由Objective-C编写的,但您可能会理解

- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay {
  NSString *overlayClass = NSStringFromClass([overlay class]);
  if ([overlayClass isEqualToString:@"GMSPolygon"] ||
      [overlayClass isEqualToString:@"GMSPolyline"] ||
      [overlayClass isEqualToString:@"GMSCircle"] ||
      [overlayClass isEqualToString:@"GMSGroundOverlay"]) {
    [self triggerOverlayEvent:@"overlay_click" id:overlay.title];  // <-- here
  }
}


当然,您需要自己使用生成的ID管理所有多边形(和其他多边形)。

09-18 15:25