我有一個嵌入式數據庫在我的應用程序,有一些感興趣的點的所有緯度和經度,我需要知道我從這些點的距離(讓我的位置使用GPS)。 我的問題是:我剛剛發現SQLite無法使用我有的查詢計算距離,因爲它不計算三角函數(SIN,COS ...)。我試圖避免使用此查詢以編程方式計算這些距離:IPhone - 經緯度的SQLite距離
NSLog(@"SELECT ((ACOS(SIN(%@ * PI()/180) * SIN(lat * PI()/180) + COS(%@ * PI()/180) * COS(lat * PI()/180) * COS((%@ – lon) * PI()/180)) * 180/PI()) * 60 * 1.1515) AS `distance` FROM `members` HAVING `distance`<=’1000′ ORDER BY `distance`", Latitude,Latitude, Longitude);
有沒有人有解決方案?
問候!
很好。非常感謝! – Claudio
鏈接到答案真的很好。定義一個從sqlite調用的c函數來計算距離。它速度快,效果很好。我唯一要做的就是可以使用BETWEEN語句來優化搜索。我使用的是:SELECT * FROM位置WHERE lat BETWEEN%f AND%f AND lon%BETWEEN%f AND%f ORDER BY距離(lat,lon,%f,%f)LIMIT 25 –
@KennyWinker請提供%f值 –