我正在处理与投放相关的应用。在这个应用程序中,一个视图显示地图视图。如果地图视图改变其区域,那么如何从当前位置查找地图视图区域的方向?
答案 0 :(得分:0)
您可以创建一个属性来存储最后一个中心坐标,然后使用此答案https://stackoverflow.com/a/6140171/1757960
中的方法找到新坐标和最后一个坐标之间的方向这样的事情:
创建属性
@property (assign, nonatomic) CLLocationCoordinate2D lastCenterCoordinate;
实施委托
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
float angle = [self angleFromCoordinate:self.lastCenterCoordinate toCoordinate:mapView.centerCoordinate];
self.lastCenterCoordinate = mapView.centerCoordinate;
}
作为参考,这是上面链接的答案中的方法
+ (float)angleFromCoordinate:(CLLocationCoordinate2D)first
toCoordinate:(CLLocationCoordinate2D)second
{
float deltaLongitude = second.longitude - first.longitude;
float deltaLatitude = second.latitude - first.latitude;
float angle = (M_PI * .5f) - atan(deltaLatitude / deltaLongitude);
if (deltaLongitude > 0) return angle;
else if (deltaLongitude < 0) return angle + M_PI;
else if (deltaLatitude < 0) return M_PI;
return 0.0f;
}
(注意这未经测试)