我在另一个主题中找到了我的问题的答案,并根据我的需要更改了功能。但我没有达到预期的结果。我使用这个功能,我想得到半径上的点。
func radiusSearchPoint(coordinate: CLLocationCoordinate2D, radius: CLLocationDistance) -> CLLocationCoordinate2D {
let earthRadius = 6_378_100.0
let π = Double.pi
let lat = coordinate.latitude * π / 180.0
let lng = coordinate.longitude * π / 180.0
let t: Double = 0
let pointLat = lat + (radius / Double(earthRadius)) * sin(t)
let pointLng = lng + (radius / Double(earthRadius)) * cos(t)
let point = CLLocationCoordinate2D(latitude: pointLat * 180 / π, longitude: pointLng * 180 / π)
return point
}
红线由两点组成:圆心和函数执行后收到的点,但第二个点应该在圆上
我怎样才能在圆的半径上正确地得到这个点?