如何在mapKit框架中使用自定义图标? [英] How to use custom icons with mapKit framework?
本文介绍了如何在mapKit框架中使用自定义图标?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用MapKit框架在我的应用程序上加载谷歌地图,并在地图上放置4个模拟地点,如下所示:
I am using the MapKit framework to load google maps on my application and I place on map 4 "simulated" places like this:
- (void)viewDidLoad {
[super viewDidLoad];
mapView.delegate = self;
mapView.showsUserLocation = YES;
MKUserLocation *userLocation = mapView.userLocation;
MKCoordinateRegion region =
MKCoordinateRegionMakeWithDistance (userLocation.location.coordinate,500,500);
[mapView setRegion:region animated:NO];
//Simulated annotations on the map
CLLocationCoordinate2D poi1Coord , poi2Coord , poi3Coord , poi4Coord;
//poi1 coordinates
poi1Coord.latitude = 37.78754;
poi1Coord.longitude = -122.40718;
//poi2 coordinates
poi2Coord.latitude = 37.78615;
poi2Coord.longitude = -122.41040;
//poi3 coordinates
poi3Coord.latitude = 37.78472;
poi3Coord.longitude = -122.40516;
//poi4 coordinates
poi4Coord.latitude = 37.78866;
poi4Coord.longitude = -122.40623;
MKPointAnnotation *poi1 = [[MKPointAnnotation alloc] init];
MKPointAnnotation *poi2 = [[MKPointAnnotation alloc] init];
MKPointAnnotation *poi3 = [[MKPointAnnotation alloc] init];
MKPointAnnotation *poi4 = [[MKPointAnnotation alloc] init];
poi1.coordinate = poi1Coord;
poi2.coordinate = poi2Coord;
poi3.coordinate = poi3Coord;
poi4.coordinate = poi4Coord;
poi1.title = @"McDonald's";
poi1.subtitle = @"Best burgers in town";
poi2.title = @"Apple store";
poi2.subtitle = @"Iphone on sales..";
poi3.title = @"Microsoft";
poi3.subtitle = @"Microsoft's headquarters";
poi4.title = @"Post office";
poi4.subtitle = @"You got mail!";
[mapView addAnnotation:poi1];
[mapView addAnnotation:poi2];
[mapView addAnnotation:poi3];
[mapView addAnnotation:poi4];
}
代码相当简单。我想要做的不是使用谷歌地图上的典型红色别针,而是使用我自己的图像来显示不同的地方。是否有一种简单/直接的方法,因为我对已经找到的样本感到困惑。
The code is fairly simple. What i want to do is instead of using the typical red pin on my google map , use my own images to show different places. Is there a simple/straightforward way to do that, cause I got much confused from the samples I already found.
推荐答案
你可以使用以下代码更改注释图像,
You can change the annotation image by using following code,
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
if ([[annotation title] isEqualToString:@"Current Location"]) {
return nil;
}
MKAnnotationView *annView = [[MKAnnotationView alloc ] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
if ([[annotation title] isEqualToString:@"McDonald's"])
annView.image = [ UIImage imageNamed:@"mcdonalds.png" ];
else if ([[annotation title] isEqualToString:@"Apple store"])
annView.image = [ UIImage imageNamed:@"applestore.png" ];
else
annView.image = [ UIImage imageNamed:@"marker.png" ];
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[infoButton addTarget:self action:@selector(showDetailsView)
forControlEvents:UIControlEventTouchUpInside];
annView.rightCalloutAccessoryView = infoButton;
annView.canShowCallout = YES;
return annView;
}
其中marker.png是您的图像文件。
where "marker.png" is your image file.
这篇关于如何在mapKit框架中使用自定义图标?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文