如何检查我的坐标是否位于地图可见区域?
How to check whether my coordinates lies in map visible region?
我能够在我的地图视图中获得可见区域的东北和西南坐标。
但是在如何检查我的坐标是否位于这些 NE 和 SW 坐标之间发现困难。
例如假设我的西南坐标是“38.94271”,
“-94.68807”,我的东北坐标是“39.06544300754172”,
“-94.57821056524351”。
现在我所在位置的纬度是22.354643,经度是10.34532,那么如何查看我的位置是否在特定区域?
+ (BOOL)coordinate:(CLLocationCoordinate2D)coord inRegion:(MKCoordinateRegion)region
{
CLLocationCoordinate2D center = region.center;
MKCoordinateSpan span = region.span;
BOOL result = YES;
result &= cos((center.latitude - coord.latitude)*M_PI/180.0) > cos(span.latitudeDelta/2.0*M_PI/180.0);
result &= cos((center.longitude - coord.longitude)*M_PI/180.0) > cos(span.longitudeDelta/2.0*M_PI/180.0);
return result;
}
这应该可以解决问题。根据您的需要进行调整。
我能够在我的地图视图中获得可见区域的东北和西南坐标。
但是在如何检查我的坐标是否位于这些 NE 和 SW 坐标之间发现困难。
例如假设我的西南坐标是“38.94271”, “-94.68807”,我的东北坐标是“39.06544300754172”, “-94.57821056524351”。
现在我所在位置的纬度是22.354643,经度是10.34532,那么如何查看我的位置是否在特定区域?
+ (BOOL)coordinate:(CLLocationCoordinate2D)coord inRegion:(MKCoordinateRegion)region
{
CLLocationCoordinate2D center = region.center;
MKCoordinateSpan span = region.span;
BOOL result = YES;
result &= cos((center.latitude - coord.latitude)*M_PI/180.0) > cos(span.latitudeDelta/2.0*M_PI/180.0);
result &= cos((center.longitude - coord.longitude)*M_PI/180.0) > cos(span.longitudeDelta/2.0*M_PI/180.0);
return result;
}
这应该可以解决问题。根据您的需要进行调整。