在地圖上新增 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;
}