Question

Is it possible to have our own image instead of the default pin in MapKit map on iPhone?

I am working on an application which would show friends' locations much like Google Latitude and need to show image of friends at their locations.

It is possible using the JavaScript Google Map but i want to know if someone can give some sample code for MapKit based map.

Was it helpful?

Solution

Yes it is possible. For that u have to use MKAnnotationView instead of MKPinAnnotationView. and do not use annotation.animatesDrop property.

Here are the sample code you can use in viewForAnnotation,

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

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


    return annotation;

OTHER TIPS

You can also set the frame of the image. For that in above code we have to make this simple changes.

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

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

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

[annotation addSubview:imageView];

And we have to comment the line

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

By using span property you can easily zoom to your require

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];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top