[IPhone] начертить круг вокруг места на карте Google

голоса
1

Я новичок в программировании iPhone. Я хочу написать приложение, использующее CoreLocation и MapKit API. Я был в состоянии найти и добавить контакты для текущего местоположения. Теперь я пытаюсь нарисовать круг вокруг места, но я не уверен, как идти о выполнении этого. Я бы признателен за любые указатели, спасибо.

Задан 07/10/2009 в 10:47
источник пользователем
На других языках...                            


2 ответов

голоса
1

Я думал , что у меня такой же вопрос с вами. И я нашел это вопросы ответить, он мне очень помог, я надеюсь , что это будет помогать вам. Рисование точка, линия, многоугольник на вершине MKMapview

Ответил 20/10/2009 в 21:24
источник пользователем

голоса
0

Я знаю , что это было первоначально помеченным 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 .

Ответил 11/05/2012 в 11:01
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more