NSTimeZone+Coordinate
为 NSTimeZone
添加了一个 coordinate
属性,这在尚未获得位置权限、位置请求被拒绝或无法请求的情况下非常有用。
这些坐标来自 IANA 时间数据库,并代表给定时区内人口最多的地方(不是中心点)。
用法
CLLocationCoordinate2D coordinate = NSTimeZone.localTimeZone.coordinate;
NSLog(@"%@: %f, %f", NSTimeZone.localTimeZone, coordinate.latitude, coordinate.longitude);
// → Local Time Zone (America/New_York (EDT) offset -14400 (Daylight)): 40.714000, -74.006000
为了设置地图视图的中心坐标(例如,使用 Mapbox iOS SDK)
CLLocationCoordinate2D coordinate = NSTimeZone.localTimeZone.coordinate;
if (CLLocationCoordinate2DIsValid(coordinate)) {
[self.mapView setCenterCoordinate:coordinate];
}
请确保返回的坐标是有效的,因为可能此类别可能不会为给定时区找到坐标。
有关用法和可用时区的更多信息,请参阅示例项目。
安装
手册
将 NSTimeZone+Coordinate.h/m
和 timezones.plist
复制到您的项目中。确保 timezones.plist
与您的应用程序捆绑在一起。
注意:此类别不使用 timezones.xml.plist
—— 它存在是为了方便进行更改的diff。
CocoaPods
要将此类别与 CocoaPods 集成,请将以下内容添加到您的 Podfile 中
pod 'NSTimeZone-Coordinate'
更新
npm run update
— 更新时区子模块并重新生成plist文件。- 提交新的子模块提交哈希值以及二进制和XML plist文件中的更改。