ios开发之计算地图上两地距离

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);




软件开发程序员博客文章收藏网

http://www.programgo.com/tag/ios/950044682/4/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章