Изображение вместо булавки по умолчанию в структуре iPhone MapKit?

Можно ли использовать собственное изображение вместо булавки по умолчанию в карте MapKit на iPhone?

Я работаю над приложением, которое будет показывать местоположение друзей так же, как Google Latitude, и должно отображать изображения друзей в их местоположениях.

Можно использовать JavaScript Google Map, но я хочу знать, может ли кто-нибудь дать образец кода для карты на основе MapKit.


person Chintan Patel    schedule 29.09.2009    source источник


Ответы (3)


Да, это возможно. Для этого вам нужно использовать MKAnnotationView вместо MKPinAnnotationView. и не используйте свойство annotation.animatesDrop.

Вот пример кода, который вы можете использовать в viewForAnnotation,

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

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


    return annotation;
person Jay Vachhani    schedule 29.09.2009
comment
Спасибо. Это сработало. Не могу поверить, что я не могу понять такой простой трюк. - person Chintan Patel; 29.09.2009

Вы также можете установить рамку изображения. Для этого в приведенном выше коде мы должны внести эти простые изменения.

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

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

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

[annotation addSubview:imageView];

И мы должны прокомментировать строку

// annotation.image = [UIImage imageNamed:@"image.png"];
person Dishant    schedule 29.11.2010

Используя свойство span, вы можете легко увеличить до нужного

MKCoordinateSpan span;

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];
person sundeep    schedule 25.07.2013