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.
[IPhone] narysować okrąg wokół lokalizacji na Google Map
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
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 .













