gpt4 book ai didi

mysql - 计算两个纬度/经度点之间的距离不一致

转载 作者:行者123 更新时间:2023-11-29 12:19:15 24 4
gpt4 key购买 nike

我在使用 SQL Consult 计算距离时与 CLLocation 之间存在不一致。如何获得真实距离?

使用此 Swift 代码的距离:334.599618308747 公里

var latitude = 19.395039;
var longitude = -99.156203;

var fromLocation = CLLocation(latitude: self.latitude , longitude: self.longitude)
var toLocation = CLLocation(latitude: latitudeDestion , longitude: longitudeDestinaton)

let distance = fromLocation.distanceFromLocation(toLocation)

距离SQL:207.91730456420444公里

SELECT id_gasolineria, 
( 3959 * acos( cos( radians(19.395039) ) * cos( radians( gasolinerias.latitud ) )
* cos( radians(gasolinerias.longitud) - radians(-99.156203)) + sin(radians(19.395039))
* sin( radians(gasolinerias.latitud)))) AS distance
FROM gasolinerias
ORDER BY distance;

如何使用SQL获取实际距离?

最佳答案

不存在(真正的)不一致。其中的主导因素是 Haversine formula地球半径,SQL 公式中的3959 是(近似值)半径以英里为单位,因此结果为 207.9 英里,也就是334.6公里。

如果将 3959 替换为 6371(大约地球半径,以公里为单位)那么您应该得到与 Swift 代码相同的结果。

关于mysql - 计算两个纬度/经度点之间的距离不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29288094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com