据我所知,最大值和最小值是:
纬度:[ - 90,90]
经度:[ - 180,180]
CLLocation仍接受超出这些限制的值,例如:
[[CLLocation alloc] initWithLatitude:100.0 longitude:-200.0];
CLLocation的distanceFromLocation:
函数仍返回有效距离(尽管我们无法验证这一点,因为坐标超出了限制)。
为什么会这样?
我正在考虑以下几点:
超出这些限制的值对应于外太空
超出这些限制的值对应于其他尺寸
3.超出这些限制的值会重新映射到[-90,90]或[-180,180]范围内的有效值。
答案 0 :(得分:1)
纬度和经度是一种CLLocationDegrees:
//From CLLocation.h
/*
* initWithLatitude:longitude:
*
* Discussion:
* Initialize with the specified latitude and longitude.
*/
- (id)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude;
如果你进一步观察是一种双重类型:
//From CLLocation.h
/*
* CLLocationDegrees
*
* Discussion:
* Type used to represent a latitude or longitude coordinate in degrees under the WGS 84 reference
* frame. The degree can be positive (North and East) or negative (South and West).
*/
typedef double CLLocationDegrees;
what is the range of a double in Objective-C?
因此,我认为没有为纬度和经度提供的值的内置登记。
答案 1 :(得分:1)
以度为单位测量的任何角度总是模360度,因此380的经度在数学上与经度20相同。关于纬度,如果您考虑角度移动到[-90,90]的范围之外图片看起来像是在球体上,然后你会看到纬度是模180.所以我认为你的选择3是正确的答案。