【发布时间】:2015-08-13 20:34:01
【问题描述】:
更新
我需要在MKMapView 上画一个圆,我可以在其中获得圆的半径及其中心坐标。但是,我还希望圆圈成为MKMapView 的子视图,以便地图视图可以在圆圈下方滚动,在地图移动时更新其中心坐标,并在地图放大和缩小时更新其半径。
有谁知道我如何能够做到这一点?
这是问题的原始措辞
我使用下面的代码在MKMapView 上画了一个圆圈:
- (void)viewDidLoad
{
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.region = [MKCircle circleWithCenterCoordinate:self.locationManager.location.coordinate radius:kViewRegionDefaultDistance];
[self.mapView addOverlay:self.region];
}
- (MKOverlayPathRenderer *)mapView:(MKMapView *)map viewForOverlay:(id <MKOverlay>)overlay
{
MKCircleRenderer *region = [[MKCircleRenderer alloc] initWithOverlay:overlay];
region.strokeColor = [UIColor blueColor];
region.fillColor = [[UIColor blueColor] colorWithAlphaComponent:0.4];
return region;
}
这可以在地图视图上生成一个圆圈。但是,当我滚动地图视图时,圆圈会随之移动。 我希望圆圈保持静止并让地图视图在圆圈下方滚动。
重要的是要注意,我需要获取圆的中心坐标和半径才能创建一个区域。出于这个原因,我不能简单地在 MKMapView 上绘制 UIView,因为我无法获取 UIView 的半径(以米为单位)。
【问题讨论】:
标签: mkmapview mkoverlay mkoverlaypathrenderer mkcircle