swift Swift - 扩展到CLLocation以获取坐标的笛卡尔表示。来源:http://stackoverflow.com/a/5983282/273119
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift Swift - 扩展到CLLocation以获取坐标的笛卡尔表示。来源:http://stackoverflow.com/a/5983282/273119相关的知识,希望对你有一定的参考价值。
import Darwin
import Foundation
import CoreLocation
extension CLLocation {
/**
source: http://stackoverflow.com/a/5983282/273119
Find cartesian representation for latitude, longitude and altitude.
returns (x,y,z)
*/
var cartesianCoordinates: (Double, Double, Double) {
let rE = 6378137.0
let rP = 6356752.31424518
let latrad = coordinate.latitude/180.0 * M_PI
let lonrad = coordinate.longitude/180.0 * M_PI
let coslat = cos(latrad)
let sinlat = sin(latrad)
let coslon = cos(lonrad)
let sinlon = sin(lonrad)
let term1 = (pow(rE, 2) * coslat) / sqrt(pow(rE, 2) * pow(coslat,2) + pow(rP,2) * pow(sinlat, 2))
let term2 = altitude * coslat + term1
let x = coslon * term2
let y = sinlon * term2
let z = altitude * sinlat + (pow(rP, 2) * sinlat) / sqrt(pow(rE, 2) * pow(coslat, 2) + pow(rP, 2) * pow(sinlat, 2))
return (x,y,z)
}
}
以上是关于swift Swift - 扩展到CLLocation以获取坐标的笛卡尔表示。来源:http://stackoverflow.com/a/5983282/273119的主要内容,如果未能解决你的问题,请参考以下文章
我可以防止将扩展导出到 Objective-C 的 Swift 标头吗?
Swift 2 集合视图扩展,用于水平滚动到垂直
无法从 NSUserDefaults 检索数据到今天的扩展(Swift)
Swift 3:将UIButton扩展添加到ViewController
swift Swift - 扩展到CLLocation以获取坐标的笛卡尔表示。来源:http://stackoverflow.com/a/5983282/273119
swift Swift - 扩展到CLLocation以获取坐标的笛卡尔表示。来源:http://stackoverflow.com/a/5983282/273119