在地图上添加 PinPoint 注释

为了在地图上注释某些兴趣点,我们使用 pin 注释。现在,首先创建一个注释对象。

MKPointAnnotation *pointAnnotation = [[MKPointAnnotation alloc] init];

现在为 pointAnnotation 提供坐标,如

CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(23.054625,72.534562);
pointAnnotation.coordinate = coordinate;

现在,为注释提供标题和副标题,

pointAnnotation.title = @"XYZ Point";
pointAnnotation.subtitle = @"Ahmedabad Area";

现在,将此注释添加到地图中。

[self.mapView addAnnotation:pointAnnotation];

是啊..华友世纪……你已经完成了这项工作。你现在可以在给定坐标处看到点注释(红色针脚)。

但是现在,如果你想改变别针的颜色怎么办(3 种颜色可选 - 紫色,红色和绿色)。然后按照此步骤操作。

设置 mapview 的委托给自己,

self.mapView.delegate = self;

添加 MKMapViewDelegate 实现。现在添加以下方法,

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    // If it's the user location, just return nil, because it have user location's own annotation, if you want to change that, then use this object;
    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;

    if ([annotation isKindOfClass:[MKPointAnnotation class]])
    {
        //Use dequed pin if available
        MKAnnotationView *pinView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"PinAnnotationView"];
    
        if (!pinView)
        {
            // If not dequed, then create new.
            pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PinAnnotationView"];
            pinView.canShowCallout = YES;
            pinView.image = [UIImage imageNamed:@"abc.png"];
            pinView.calloutOffset = CGPointMake(0, 32);
        } else {
            pinView.annotation = annotation;
        }
        return pinView;
    }
    return nil;
}