我使用此协议方法获取用户丢弃引脚的坐标。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState
...
在这种方法中,我检查这个引脚是否掉得太靠近地图上的其他引脚,当发生这种情况时,我想以编程方式将引脚移动距离该引脚100米。 但我不知道如何以及实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
此方法可用于获取与其他引脚注释的距离
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
答案 1 :(得分:0)
您可以检查新的和其他引脚之间的距离是否小于100米
('MKMapView''注释'属性)。
要计算每个引脚之间的距离,您可以使用CLLocation
CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:latitudeA longitude:longitudeA];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:latitudeB longitude:longitudeB];
double distanceInMeters = [pointALocation getDistanceFrom:pointBLocation];
比块引脚添加/移动如果此距离小于100