(使用的是iOS 5和Xcode的4.2)绘制千米半径围绕用户位置的圆圈中的MKMapView
我有一个的MKMapView并希望周围绘制用户位置千米半径的圆。
从表面看来,实现mapView:viewForAnnotation:地图视图委托方法,并为用户位置添加自定义MKAnnotationView将是一个完美的解决方案。它看起来像这样:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
// If it's the user location, return my custom MKAnnotationView.
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return myCustomAnnotationView;
} else {
return nil;
}
}
但是,当您放大和缩小地图时,地图上的注释不会缩放。
所以我尝试添加一个覆盖图(因为覆盖图随地图缩放),使用MKCircle类并将其坐标设置为我的locationManger/map视图委托中的最新坐标。然而,由于MKCircle的coordinate property是只读的,我不得不移除叠加层,然后在用户每次移动时添加一个新叠加层。碰巧引起明显的闪烁。
有没有什么方法可以在地图视图缩放时无缝制作注记比例?或者,有没有一种方法可以使覆盖层随用户位置的变化而无缝移动?
我会是你的帮助:)
我觉得一个自定义的覆盖和叠加的观点是,你需要什么(这是什么@Flink似乎暗示)。但是,更接近您要求的Apple示例是WWDC 2010中的LocationReminders应用程序。如果您是注册开发人员,则可以在[此处]找到它(http://connect.apple.com/cgi-bin/WebObjects/MemberSite .woa/WA/getSoftware?代码= Y&源= X&bundleID = 20645)。它自定义绘制一个大小和位置可以动态变化的圆形覆盖图。 – Anna 2012-01-30 02:23:17
感谢您的链接,听起来就像我需要的例子。另外我是注册开发者,所以这很方便:) – 2012-01-30 02:59:57
链接已损坏,但我发现这在github上:https://github.com/master-nevi/WWDC-2010/tree/master/LocationReminders – foson 2017-12-30 23:21:42