CLLocation distanceFromLocation:在iOS 9上返回零.这是一个错误吗?

Fre*_*ame 8 geolocation core-location ios ios9

代码重现问题:

-(void)testDistance {
    NSLog(@"Test distance...");

    CLLocation *location1 = [[CLLocation alloc] initWithLatitude:137.02954600000001 longitude:50.543728999999999];
    CLLocation *location2 = [[CLLocation alloc] initWithLatitude:55.79676300 longitude:49.10834400];

    CLLocationDistance distance = [location1 distanceFromLocation:location2];
    NSLog(@"Distance: %lf", distance);
}
Run Code Online (Sandbox Code Playgroud)

iOS 8.4输出:

距离:9021699.415204

iOS 9.1输出:

距离:0.000000

location1而且location2不是零.

我在SO搜索了一个类似的问题,但找不到一个.对我来说看起来像iOS 9的bug.你同意吗?你得到类似的结果吗?我想向Apple发送一个错误报告,但我想先确认一下.

我在模拟器上运行代码(iOS 8.4和iOS 9.1).系统语言设置为俄语,该地区设置为俄罗斯.

更新: latlon原来进行混合.纬度应位于[-90,90]范围内.在以前的iOS版本中,它仍然产生了一些结果.在iOS 9中,他们让它回归0.对于这种情况,我不认为这是一个很好的回报值,因为它是一个完全有效的值.我认为他们应该返回一些错误代码(就像他们那样做nil,返回-1).至少,它必须在文档中提到.我打算在不久的将来提交错误报告.

res*_*sis 5

检查location1的纬度值。我想纬度范围(-90,90)有一些不匹配。

  • 137是您所在位置的纬度值。.纬度范围应介于(-90 <x <90)之间,其中x是纬度。.我通过交换您的纬度值和经度值来检查..我正在获取距离.. (2认同)