作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试向 MapKit 中的 map 添加环形叠加层。
我可以从另一个 MKCircleView 中减去一个 MKCircleView 还是我需要编写自己的自定义叠加层?
最佳答案
对于图片中的那种戒指,您不需要创建自定义叠加层。
要绘制一个基本环,添加一个 MKCircle
并为其 MKCircleView
,根据您想要的环的厚度设置 lineWidth
.
//Create the MKCircle (could be in viewDidLoad)...
MKCircle *c = [MKCircle circleWithCenterCoordinate:
CLLocationCoordinate2DMake(someLat, someLong)
radius:2000];
[myMapView addOverlay:c];
//In viewForOverlay delegate method, return a MKCircleView...
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKCircle class]])
{
MKCircleView *cv = [[MKCircleView alloc] initWithCircle:overlay];
cv.lineWidth = 15; // <-- controls thickness of ring
cv.strokeColor = [UIColor greenColor];
cv.alpha = 0.75;
return cv;
}
return nil;
}
关于ios - 减去两个 MKCircle 或者如何在 MapKit 的 map 上画一个环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9973407/
我是一名优秀的程序员,十分优秀!