gpt4 book ai didi

iphone - 如何计算 objective-c 中两个坐标的距离?

转载 作者:行者123 更新时间:2023-12-03 19:02:31 24 4
gpt4 key购买 nike

作为标题如何?我已经尝试了谷歌地球的代码,但似乎结果与谷歌地图计算结果不同。下面提供了我所做的代码

-(double)GetDistance:(double)lat1 long1:(double)lng1 la2:(double)lat2 long2:(double)lng2 {
//NSLog(@"latitude 1:%.7f,longitude1:%.7f,latitude2:%.7f,longtitude2:%.7f",lat1,lng1,lat2,lng2);
double radLat1 = [self rad:lat1];
double radLat2 = [self rad:lat2];
double a = radLat1 - radLat2;
double b = [self rad:lng1] -[self rad:lng2];
double s = 2 * asin(sqrt(pow(sin(a/2),2) + cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
s = s * EARTH_RADIUS;
s = round(s * 10000) / 10000;
return s;
}

-(double)rad:(double)d
{
return d *3.14159265 / 180.0;
}

EARTH_RADIUS 值为 6378.138

通过使用此函数并提供两个坐标,结果是 4.5kM但是当我使用谷歌地图获取两个相同坐标之间的方向时,它显示距离约为 8 公里

谁能帮忙指出我的代码的问题吗?

最佳答案

既然这是 iPhone 的标签,为什么不使用内置的距离功能而不是自己滚动呢? location1 和 location2 是 CLLocation 对象。

CLLocationDistance distance = [location1 getDistanceFrom:location2];

关于iphone - 如何计算 objective-c 中两个坐标的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com