我尝试在GMSMapView上的标记处添加一些阴影,但配置GMSMarkerLayer的阴影属性似乎没有任何效果。
GMSMarker *marker = [[GMSMarker alloc] init];
[marker setMap:self.mapView];
marker.snippet = @"Description";
marker.title = @"Title";
marker.position = busData.location.coordinate;
marker.icon = [UIImage imageNamed:@"BusMarker"];
marker.layer.shadowOpacity = 0.7;
marker.layer.shadowOffset = CGSizeMake(0, 3);
marker.layer.shadowRadius = 5.0;
marker.layer.shadowColor = [UIColor blackColor].CGColor;
我设置了我在CALayer对象上使用的相同属性,因为GMSMarkerLayer是CALayer的子类。
我做错了什么或者这是一个错误?我使用的是SDK版本1.10.0。
答案 0 :(得分:2)
您可以使用iconView
属性并在该视图中绘制阴影(将其保持在iconView
的范围内)。
答案 1 :(得分:0)
这里需要了解的是iOS上的Google地图是在OpenGL中实现的。因此,更改GMSMarkerLayer的默认属性没有视觉效果。对不起。
答案 2 :(得分:0)
不实际,但这是答案:
-(UIImage *)makeShadowImage:(UIImage *) image;
{
CALayer *imageLayer = [CALayer layer];
imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height);
imageLayer.contents = (id) image.CGImage;
[imageLayer setShadowColor:[[UIColor grayColor] CGColor]];
[imageLayer setShadowOpacity:0.5];
[imageLayer setShadowOffset:CGSizeMake(0, 0)];
[imageLayer setShadowRadius:4.0];
imageLayer.masksToBounds = YES;
UIGraphicsBeginImageContext(image.size);
[imageLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return roundedImage;
}