Ik ben nieuw in iPhone programmering. Ik wil een toepassing die gebruikmaakt CoreLocation en Mapkit API te schrijven. Ik heb kunnen vinden en pennen toe te voegen voor de huidige locatie geweest. Nu probeer ik om een cirkel rond de locatie te trekken, maar ik ben niet zeker hoe om te gaan over dat te doen. Ik zou het even welke wijzers waardeer, dank.
[IPhone] trek de cirkel rond een locatie op Google Map
bron van user Sinh Nguyen
In andere talen...
Ik dacht dat ik heb dezelfde vraag heb met jou. En ik heb gevonden deze vragen te beantwoorden, werd het me veel geholpen, ik hoop dat dit zal helpen om u. Het tekenen van een punt, lijn, Polygon bovenop MKMapView
Ik weet dat dit was oorspronkelijk gelabeld iOS SDK 3.0 , maar ik neem aan dat was omdat op het moment, dat was de huidige SDK. Als iemand is op zoek naar het antwoord op deze, maar kan iOS 4.0+ gebruiken, dan hier is mijn oplossing.
Dus, ik neem aan dat je een UIViewController, die eigenaar is van een MKMapView.
@interface MapViewController : UIViewController<MKMapViewDelegate> {
@private
MKMapView* mapView;
}
@property (nonatomic, retain) IBOutlet MKMapView* mapView;
@end
en u opstelling uw verbindingen in Interface Builder (XCode nu) om de werkelijke verbinding MKMapViewmet de mapViewuitlaat. En dan heb je een aantal variabele die de locatie die u wilt een cirkel rond te tekenen bevat: location. U hoeft enkel een te creëren MKCircle, en deze toevoegen aan uw mapViewals een overlay :
CLLocationCoordinate2D location = [self getTheLocationSomehow];
CLLocationDistance radius = 50.0; // in meters
MKCircle* circle = [MKCircle circleWithCenterCoordinate: location radius: radius];
[mapView addOverlay:circle];
Wilt u het uiterlijk van uw cirkel aan te passen, kan uw view controller te implementeren MKMapViewDelegateen uit te voeren mapView:viewForOverlay:als volgt:
- (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;
}
Vergeet niet om te stellen mapView.delegate = selfin de weergave controller code (bijvoorbeeld viewDidLoad) of grafisch via Interface Builder .