Я новичок в программировании iPhone. Я хочу написать приложение, использующее CoreLocation и MapKit API. Я был в состоянии найти и добавить контакты для текущего местоположения. Теперь я пытаюсь нарисовать круг вокруг места, но я не уверен, как идти о выполнении этого. Я бы признателен за любые указатели, спасибо.
[IPhone] начертить круг вокруг места на карте Google
Я думал , что у меня такой же вопрос с вами. И я нашел это вопросы ответить, он мне очень помог, я надеюсь , что это будет помогать вам. Рисование точка, линия, многоугольник на вершине MKMapview
Я знаю , что это было первоначально помеченным IOS SDK 3.0 , но я предполагаю , что это потому , что в то время, это был текущий SDK. Если кто - то ищет ответ на это, но может использовать IOS 4.0+, то вот мое решение.
Таким образом, я предполагаю , что у вас есть UIViewController, что владеет MKMapView.
@interface MapViewController : UIViewController<MKMapViewDelegate> {
@private
MKMapView* mapView;
}
@property (nonatomic, retain) IBOutlet MKMapView* mapView;
@end
и вы настроите свои связи в Interface Builder (XCode сейчас) , чтобы подключить фактическое MKMapViewк mapViewрозетке. И тогда у вас есть какие - то переменное , которая содержит ячейку , которую вы хотите , чтобы нарисовать круг вокруг: location. Вам просто нужно создать MKCircleи добавить его в свой mapViewкачестве наложения :
CLLocationCoordinate2D location = [self getTheLocationSomehow];
CLLocationDistance radius = 50.0; // in meters
MKCircle* circle = [MKCircle circleWithCenterCoordinate: location radius: radius];
[mapView addOverlay:circle];
Если вы хотите , чтобы настроить внешний вид вашего круга, ваш контроллер представления может осуществить MKMapViewDelegateи реализовать mapView:viewForOverlay:следующим образом:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKCircle* circle = overlay;
MKCircleView* circleView = [[[MKCircleView alloc] initWithCircle: circle] autorelease];
// make the circle red with some transparency and stroke
circleView.fillColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.25];
circleView.strokeColor = [UIColor redColor];
circleView.lineWidth = 2.0;
return circleView;
}
Не забудьте установить mapView.delegate = selfв коде контроллера представления (например viewDidLoad) или в графическом виде с помощью Interface Builder .













