2016-08-27 3 views
2

Я пытаюсь добавить пользовательский примечание аннотации в начальной и конечной точке полилинии. Но я не могу понять, как это сделать. Вот изображение моей карты.Add Custom Annotation pin

Green annotation pin on the current location of user

Я хочу, чтобы добавить зеленый аннотаций штифт на начальной или конечной точки ломаной линии.

Вот мой код

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    if (annotation==mapView.userLocation) { 

     MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"currAnno"]; 

     if (annotationView == nil) { 
      annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currAnno"]; 
     } 

     annotationView.canShowCallout=YES; 
     annotationView.image = [UIImage imageNamed:@"mapPin.png"]; 

     return annotationView; 


    }else{ 

     static NSString *viewId = @"MKAnnotationView"; 
     MKAnnotationView *annotationView = (MKAnnotationView*) 
     [mapView dequeueReusableAnnotationViewWithIdentifier:viewId]; 

     if (annotationView == nil) { 
      annotationView = [[MKAnnotationView alloc] 
           initWithAnnotation:annotation reuseIdentifier:viewId]; 
     } 

     annotationView.canShowCallout=YES; 
     annotationView.image = [UIImage imageNamed:@"mapPin.png"];//set your image here 
     return annotationView; 
    } 

} 

ответ

0

Вам нужно создать две аннотации: одна аннотаций с координатой начала полилинии и один аннотации с координатой конца ломаной линии. Добавьте обе аннотации к карте.

Представления аннотаций сосредоточены на координате соответствующей аннотации. Если вы хотите, чтобы нижняя часть зеленого пальца на изображении появлялась в координате аннотации (а не в центре пин-изображения), вам необходимо использовать свойство centerOffset объекта MKAnnotationView для перемещения изображения вверх:

annotationView.canShowCallout=YES; 
annotationView.image = [UIImage imageNamed:@"mapPin.png"]; 
// Move the pin image up 20 points to place the bottom of the pin 
// at the annotation coordinate (adjust the value -20 to suit) 
annotationView.centerOffset = CGPointMake(0, -20); 

В этом примере изображение представления аннотаций перемещается на 20 точек (отрицательное значение y перемещает изображение вверх). Тем не менее, вы должны использовать подходящее отрицательное значение для своего изображения вместо -20, например, минус половину высоты изображения или что-то похожее на вас.