[IPhone] narysować okrąg wokół lokalizacji na Google Map

głosy
1

Jestem nowy w programowaniu iPhone. Chcę napisać aplikacji przy użyciu CoreLocation i Mapkit API. Udało mi się znaleźć i dodać szpilki dla bieżącej lokalizacji. Teraz staram się narysować okrąg wokół lokalizacji, ale nie jestem pewien, jak się do tego zabrać. będę wdzięczny za wszelkie wskazówki, dzięki.

Utwórz 07/10/2009 o 10:47
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

Myślałem, że mam to samo pytanie z wami. I Znalazłem to pytanie odpowiedzieć, było bardzo mi pomogło, mam nadzieję, że będzie to pomocne dla Ciebie. Rysowanie punktów, linii, wielokąt na szczycie MKMapview

Odpowiedział 20/10/2009 o 21:24
źródło użytkownik

głosy
0

Wiem, że to było pierwotnie oznaczone iOS SDK 3.0 , ale zakładam, że to dlatego, że w czasie, który był obecny SDK. Jeśli ktoś szuka odpowiedzi na to, ale mogą korzystać z iOS 4.0+, to tu jest moje rozwiązanie.

Więc zakładam, że masz UIViewController, że jest właścicielem MKMapView.

  @interface MapViewController : UIViewController<MKMapViewDelegate> {
  @private
    MKMapView* mapView;
  }
  @property (nonatomic, retain) IBOutlet MKMapView* mapView;
  @end

i konfiguracja połączeń w konstruktorze Interface (XCode teraz), aby połączyć rzeczywista MKMapViewdo mapViewgniazdka. I wtedy masz jakąś zmienną zawierającą lokalizację, którą chcesz narysować okrąg wokół: location. Wystarczy utworzyć MKCirclei dodać go do mapViewpostaci nakładki :

  CLLocationCoordinate2D location = [self getTheLocationSomehow];
  CLLocationDistance radius = 50.0;   // in meters
  MKCircle* circle = [MKCircle circleWithCenterCoordinate: location radius: radius];
  [mapView addOverlay:circle];

Jeśli chcesz dostosować wygląd swojego okręgu, kontroler widok może wdrożyć MKMapViewDelegatei realizować mapView:viewForOverlay:w taki sposób:

- (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;
}

Pamiętaj, aby ustawić mapView.delegate = selfw kodzie widoku kontrolera (np viewDidLoad) lub graficznie poprzez interfejs Builder .

Odpowiedział 11/05/2012 o 11:01
źródło użytkownik

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