[IPhone] trek de cirkel rond een locatie op Google Map

stemmen
1

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.

De vraag is gesteld op 07/10/2009 om 10:47
bron van user
In andere talen...                            


2 antwoorden

stemmen
1

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

antwoordde op 20/10/2009 om 21:24
bron van user

stemmen
0

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 .

antwoordde op 11/05/2012 om 11:01
bron van user

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