//將角度轉(zhuǎn)為弧度
+ (float)radians:(float)degrees{
return (degrees*3.14159265)/180.0;
}
//根據(jù)經(jīng)緯度換算出直線距離
+ (float)getDistance:(float)lat1 lng1:(float)lng1 lat2:(float)lat2 lng2:(float)lng2
{
//地球半徑
int R = 6378137;
//將角度轉(zhuǎn)為弧度
float radLat1 = [self radians:lat1];
float radLat2 = [self radians:lat2];
float radLng1 = [self radians:lng1];
float radLng2 = [self radians:lng2];
//結(jié)果
float s = acos(cos(radLat1)*cos(radLat2)*cos(radLng1-radLng2)+sin(radLat1)*sin(radLat2))*R;
//精度
s = round(s* 10000)/10000;
return round(s);
}
+ (float)getDistance:(float)lat1 lng1:(float)lng1 lat2:(float)lat2 lng2:(float)lng2
調(diào)用此方法返回的便是根據(jù)經(jīng)緯度計(jì)算出來的距離
判斷是否開啟定位
if ([CLLocationManager locationServicesEnabled] &&
([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedAlways
|| [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedWhenInUse)) {
//定位功能可用,開始定位
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者