CLLocation *lastLocation = [[CLLocation alloc] initWithLatitude:coords.latitude longitude:coords.longitude];
CLLocation *nowLocation = [[CLLocation alloc] initWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude];
int distanceMeters = [lastLocation distanceFromLocation:nowLocation];
if(appDelegate.isKMOrMILE == 0)
{
[cardistanceLabel setText:[NSString stringWithFormat:@"%d KM",distanceMeters/1000]];//公里
}
else if(appDelegate.isKMOrMILE == 1)
{
int data = (distanceMeters/1000)/1.6093;
[cardistanceLabel setText:[NSString stringWithFormat:@"%d MILE",data]];//英里
}
已知两地经纬度 计算两地之间的距离:
// 地图显示当前位置:
mapView.showsUserLocation=YES;
CLLocationManager *locationManager = [[CLLocationManager alloc] init];//创建位置管理器
locationManager.delegate=self;//设置代理
locationManager.desiredAccuracy=kCLLocationAccuracyBest;//指定需要的精度级别为最佳精度
locationManager.distanceFilter=1000.0f;//设置距离筛选器为任何移动都要发送更新
[locationManager startUpdatingLocation];//启动位置管理器
MKCoordinateSpan theSpan;
//地图的范围 越小越精确
theSpan.latitudeDelta=0.05;
theSpan.longitudeDelta=0.05;
MKCoordinateRegion theRegion;
theRegion.center=[[locationManager location] coordinate];
theRegion.span=theSpan;
[mapView setRegion:theRegion];
[locationManager release];
MKUserLocation *usrLoc=mapView.userLocation;
CLLocationCoordinate2D usrCoordinate=usrLoc.location.coordinate;
NSLog(@"la==%f lo==%f",usrCoordinate.latitude,usrCoordinate.longitude);
// 已知两点的经纬度,计算出两地距离:
CLLocation *location1 = [[[CLLocation alloc] initWithLatitude:usrCoordinate.latitude longitude:usrCoordinate.longitude] autorelease];
CLLocation *location2 = [[[CLLocation alloc] initWithLatitude:36.676445 longitude:117.106793] autorelease];
NSLog(@"JULI====%.0f km", [location1 distanceFromLocation:location2]);//4502
取小数点后两位(四舍五入),输出:
NSLog(@"%.02f km",4478.442312);