是否可以通过GMSPolygon
didTapOverlay
委派方法更改GMSMapViewDelegate
.fillColor属性?这是委托方法:func mapView(mapView: GMSMapView, didTapOverlay overlay: GMSOverlay)
我的问题是GMSPolygon
从GMSOverlay
继承,并且叠加层没有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管理所有多边形(和其他多边形)。