- (NSInteger)getLengthByTwoPointFromCenterPoint:(CLLocationCoordinate2D)centerCoordinate Leftpoint:(CLLocationCoordinate2D)leftCoordinate {
double lat1 = (M_PI/180)*centerCoordinate.latitude;
double lat2 = (M_PI/180)*leftCoordinate.latitude;
double lon1 = (M_PI/180)*centerCoordinate.longitude;
double lon2 = (M_PI/180)*leftCoordinate.longitude;
//地球半径
double R = 6371;
//两点间距离 km,如果想要米的话,结果*1000就可以了
double d = acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon2-lon1))*R;
return d*1000;
}
获取地图范围内的经纬度
//TODO:获取地图的四个角的经纬度进而算出来屏幕的半径
CLLocationDegrees pointssLongitudeDelta = mapView.region.span.longitudeDelta;
CLLocationDegrees pointssLatitudeDelta = mapView.region.span.latitudeDelta;
CGFloat leftUpLong = centerCoordinate.longitude - pointssLongitudeDelta/2.0;
CGFloat leftUpLati = centerCoordinate.latitude - pointssLatitudeDelta/2.0;
CLLocationCoordinate2D leftPt =(CLLocationCoordinate2D){leftUpLati,leftUpLong};
_radius = [self getLengthByTwoPointFromCenterPoint:centerCoordinate Leftpoint:leftPt];