2009-09-29 8 views
6

Czy możliwe jest posiadanie własnego obrazu zamiast domyślnej pinezki w Map Mapie na iPhonie?Obraz zamiast domyślnej szpilki w strukturze MapKit iPhone'a?

Pracuję nad aplikacją, która będzie wyświetlać lokalizacje znajomych podobne do Google Latitude i wyświetlać zdjęcia znajomych w ich lokalizacjach.

Jest to możliwe przy użyciu Google Maps JavaScript, ale chcę wiedzieć, czy ktoś może podać przykładowy kod dla mapy opartej na MapKit.

Odpowiedz

14

Tak, jest to możliwe. Do tego należy użyć MKAnnotationView zamiast MKPinAnnotationView. i nie używaj właściwości adnotation.animatesDrop.

Oto przykładowy kod można użyć w viewForAnnotation,

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

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


    return annotation; 
+0

Dzięki. Zrobiło to. Nie mogę uwierzyć, że mogę cuddle wymyślić taką prostą sztuczkę. –

2

Można również ustawić ramkę obrazu. W powyższym kodzie musimy wprowadzić te proste zmiany.

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

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

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

[annotation addSubview:imageView]; 

I musimy komentować linię

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

Wykorzystując własności rozpiętości można łatwo powiększyć do listy wymagają

MKCoordinateSpan rozpiętości;

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];