care arată locația actuală, împreună cu o altă locație din iPhone

voturi
2

de fiecare dată când încărcăm un mapview, acesta automaticallay prezinta curent dreptul de utilizator locație. În cazul meu Arat altă locație de pe hartă, astfel încât harta încarcă locația curentă și mărită la locația i-au dat .. dar, punctul de locația actuală nu a fost arată (cea albastră care vine automaticay ..). i-au dat mapView.showCurrentLocation = TRUE; dar ei nu arată. astfel încât ar putea orice unul spune modul în care funcționează și ar trebui să spun marca locația actuală și apoi mărită la punctul i-au dat. Mulțumiri

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    static NSString *defaultPinID = @CameraAnnotation;
    MKPinAnnotationView *retval = nil;
    static int postag=1;

    (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if(annotation=MapView.userLocation)
    {
        return nil;
    }
    // If we have to, create a new view
    else    if (retval == nil)
    {
        retval = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        UIButton *myDetailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        myDetailButton.frame = CGRectMake(0, 0, 50, 23);
        myDetailButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        myDetailButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
        myDetailButton.tag=postag;
        postag++;
        [myDetailButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];
        retval.rightCalloutAccessoryView = myDetailButton;
        [retval setPinColor:MKPinAnnotationColorRed];
        retval.animatesDrop = YES;
        retval.canShowCallout = YES;
    }

    return retval;
}
Întrebat 07/05/2010 la 09:54
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
2

În simulator de locația curentă implicită este Cupertino.This este ceea ce vedeți, acesta va funcționa corect în aparat.

Mai mult ar trebui să utilizați CLLocationManager pentru a obține locația curentă.

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self; // Tells the location manager to send updates to this object
[locationManager startUpdatingLocation];
}

Pentru a schimba culoarea PIN-

MKPinAnnotationView   *pin=[[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"]autorelease];

[pin setPinColor:MKPinAnnotationColorRed];

Toate cele bune.

Publicat 07/05/2010 la 10:03
sursa de către utilizator

voturi
1

să ia o privire la răspunsul la această întrebare pentru a seta nivelul de zoom MkMapView pentru a cuprinde toate MKAnnotations atașate acestuia

Publicat 07/05/2010 la 12:38
sursa de către utilizator

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