2009-09-29 13 views
6

È possibile avere la nostra immagine al posto del pin predefinito in MapKit map su iPhone?Immagine al posto del pin predefinito nel framework MapKit di iPhone?

Sto lavorando a un'applicazione che mostra le posizioni degli amici come Google Latitude e deve mostrare l'immagine degli amici nelle loro sedi.

È possibile utilizzare JavaScript Map di Google ma voglio sapere se qualcuno può fornire un codice di esempio per la mappa basata su MapKit.

risposta

14

Sì, è possibile. Per questo devi usare MKAnnotationView invece di MKPinAnnotationView. e non utilizzare la proprietà annotation.animatesDrop.

Ecco il codice di esempio è possibile utilizzare nella viewForAnnotation,

annotation = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"try"]; 
    annotation.canShowCallout = YES; 

    annotation.image = [UIImage imageNamed:@"image.png"]; 


    return annotation; 
+0

Grazie. Ha fatto il trucco. Non riesco a credere che non riesco a capire un trucco così semplice. –

2

È inoltre possibile impostare la cornice dell'immagine. Per quello nel codice sopra dobbiamo fare queste semplici modifiche.

UIImage *pinImage = [UIImage imageNamed:@"image.png"]; 

UIImageView *imageView = [[[UIImageView alloc] initWithImage:pinImage] autorelease]; 

     imageView.frame = CGRectMake(-20, 0, 40, 30); 

[annotation addSubview:imageView]; 

E dobbiamo commentare la linea

// annotation.image = [UIImage imageNamed:@"image.png"]; 
0

Utilizzando span property si può facilmente lo zoom al vostro richiedono

MKCoordinateSpan arco;

MKCoordinateRegion region; 


mapView.scrollEnabled=YES; 
span.latitudeDelta = 100.0;//more value you set your zoom level will increase 
span.longitudeDelta =100.0;//more value you set your zoom level will increase 
mapView.showsUserLocation=YES; 
region.span = span; 


region.center = from.coordinate; 
    [mapView setRegion:region animated:YES]; 
[mapView regionThatFits:region]; 
[mapView addAnnotation:from]; 
Problemi correlati