如何防止用户将地图上的别针放得太近。

时间:2013-08-06 12:22:43

标签: iphone ios objective-c mkmapview mkannotation

我使用此协议方法获取用户丢弃引脚的坐标。

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

在这种方法中,我检查这个引脚是否掉得太靠近地图上的其他引脚,当发生这种情况时,我想以编程方式将引脚移动距离该引脚100米。 但我不知道如何以及实现这一目标的最佳方式是什么?

2 个答案:

答案 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