2013-03-04 1 views
2
-(void)mapView:(MKMapView *)mapView 
    annotationView:(MKAnnotationView *)view     
    didChangeDragState:(MKAnnotationViewDragState)newState 
    fromOldState:(MKAnnotationViewDragState)oldState 
+0

где кнопка принятия? – Gaurav

ответ

6

Вам использовать это:

- (void)mapView:(MKMapView *)mapView 
     annotationView:(MKAnnotationView *)annotationView 
     didChangeDragState:(MKAnnotationViewDragState)newState 
     fromOldState:(MKAnnotationViewDragState)oldState 
{ 
    if (newState == MKAnnotationViewDragStateEnding) 
    { 
     CLLocationCoordinate2D droppedAt = annotationView.annotation.coordinate; 
     NSLog(@"dropped at %f,%f", droppedAt.latitude, droppedAt.longitude); 
    } 
} 

Это даст вам координаты конечного места, когда MKAnnotationView отбрасывается.

+0

спасибо, что сейчас работает – Gaurav

0

Вы можете проверить состояние перетаскивания, а затем с помощью annotationView.annotation.coordinate.latitude и annotationView.annotation.coordinate.latitude вы получите координаты нового местоположения.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState 
{ 

    //if dragging ended 
    if (newState == MKAnnotationViewDragStateNone && oldState == MKAnnotationViewDragStateEnding) { 

     MKCoordinateRegion region; 
     MKCoordinateSpan span; 

     span.latitudeDelta = 0.00212872; 
     span.longitudeDelta = 0.00212872; 

     CLLocationCoordinate2D location; 
     location.latitude = annotationView.annotation.coordinate.latitude; 
     location.longitude = annotationView.annotation.coordinate.longitude; 
     [self getAddress:location.latitude withLong:location.longitude]; 

     region.span = span; 
     region.center = location; 

     if (addAnnotation != nil) { 
      [myMap removeAnnotation:addAnnotation]; 
      [addAnnotation release]; 
      addAnnotation = nil; 
     } 

     addAnnotation = [[Annotation alloc] init]; 
     addAnnotation.coordinate = location; 
     [myMap addAnnotation:addAnnotation]; 
     [myMap setRegion:region animated:YES]; 
     [myMap regionThatFits:region]; 
    } 

} 

addAnnotation является объектом Annotation.

Смежные вопросы