[英]Inconsistency in Calculating Distance Between Two Lat/Long Points
我在用SQL咨詢和CLLocation
計算距離之間存在不一致。 如何獲得真實距離?
使用此Swift代碼的距離:334.599618308747 km
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 km
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公式中的首要因素是地球半徑 ,而SQL公式中的3959
是半徑(以英里為單位) ,因此結果是207.9英里(334.6公里)。
如果將3959
替換為6371
(約地球半徑,以km為單位 ),則結果應與Swift代碼相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.