Ios 我怎样才能得到带销的坐标来计算用户位置和销之间的距离

Ios 我怎样才能得到带销的坐标来计算用户位置和销之间的距离,ios,xcode,annotations,location,distance,Ios,Xcode,Annotations,Location,Distance,我的mapview上有很多注释,我需要计算从用户位置到录制注释的距离。如何做到这一点 MyAnnotation - (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation { if (![annotation isKindOfClass:[MyAnnotation class]]) { return nil;

我的mapview上有很多注释,我需要计算从用户位置到录制注释的距离。如何做到这一点

MyAnnotation

- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
{

    if (![annotation isKindOfClass:[MyAnnotation class]])
    {
        return nil;
    }

    static NSString* AnnotationIdentifier = @"AnnotationIdentifier";

    MKAnnotationView *pinView = [aMapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];

    if (pinView == nil)
    {
        pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
        pinView.canShowCallout = YES;
        pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeInfoLight];


    }
    else
        pinView.annotation = annotation;

    MyAnnotation *myAnn = (MyAnnotation *)annotation;
    pinView.image = [UIImage imageNamed:myAnn.icon];

    return pinView;

}
但是当注释录制时,如何自动获取管脚坐标?

编辑:


机具,当敲击销时,该机具将为您提供一个
MKAnnotationView
。此注释视图具有一个
注释
属性,该属性具有一个
CLLocationCoordinate2D
。从坐标中,制作一个
CLLocation
并与其他位置结合,使用
distance fromLocation

获得距离。如果您亲自完成,您会学到更多。只需跟随属性的轨迹。我已经-(void)mapView:(MKMapView*)mapView注释view:(MKAnnotationView*)视图调用访问控制点击:(UIControl*)控制{}但我找不到如何组合CLLocationCoordinate2D,CLLocationYou能看看编辑的问题吗?它工作了,但只有当我点击rightCalloutAccessoryView按钮时,代码看起来才正常。应该用右边的按钮。听起来好像你让它工作了,不是吗?如果它是
UIControl
子类,那么它也可以与左调用视图一起工作。阅读我链接到的文档了解更多信息。如果您想完全不用按钮就可以使用
–mapView:didSelectAnnotationView:
,但这有点奇怪。
- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{

    CLLocation *pinLocation = [[CLLocation alloc] initWithLatitude:37.322998 longitude:-122.032182];

    NSLog(@"New Location:%@", newLocation);
    CLLocationDistance distance = [newLocation distanceFromLocation:pinLocation];
    NSLog(@"Distance to pin %4.0f", distance);

}
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
calloutAccessoryControlTapped:(UIControl *)control
{
    CLLocation *pinLocation = [[CLLocation alloc] initWithLatitude:[(MyAnnotation*)[view annotation] coordinate].latitude longitude:[(MyAnnotation*)[view annotation] coordinate].longitude];

    CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:self.mapView.userLocation.coordinate.latitude longitude:self.mapView.userLocation.coordinate.longitude];

    CLLocationDistance distance = [pinLocation distanceFromLocation:userLocation];
    NSLog(@"Distance to pin %4.0f", distance);

}