看板 MacDev 關於我們 聯絡資訊
公司想要開發像iphone上的AroundMe 也就是利用iphone的gps功能 得到目前使用者的座標或地址之後 顯示最近的標的物或地點 但是很困惑的地方是怎麼知道最近點在哪呢? 目前資料庫擁有很多預設的地點的座標 也可以抓取目前使用者的座標 總不會只是兩者相加減吧? 有些網站可以讓使用者輸入地址 然後就會顯示最近幾個店面的位置 這是利用什麼方法進行計算呢? 希望有大大能分享一下經驗 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 66.238.89.65
carymask:兩座標點的距離不是((x1-x2)^2 + (y1-y2)^2)取平方根嗎? 10/16 04:54
Blueshiva:距離不照樓上那樣算的話,難不成要寫成積分嗎 XD 10/16 05:00
Blueshiva:至於找最近的地點,最暴力就全部都算算看,聰明一點的話 10/16 05:01
Blueshiva:就把整個平面分塊,先找出目前使用者在哪一塊,然後把周 10/16 05:01
Blueshiva:圍八塊區域中的所有點列出來找,會快很多 10/16 05:02
mickfang:本人是cocoa新手,是該用NS????來做計算呢?謝謝 10/16 05:29
mickfang:二樓,能否請教是否有相關文件可以參考如何實作呢? 10/16 05:32
mickfang:因為您的回答還是讓我無從下手,謝謝 10/16 05:33
adms:是用sqlite存起來嘛? 10/16 06:21
adms:一般來說 如果要節省效率 會預先作好資料分類 10/16 06:22
adms:就像2F舉的例子類似 把目前座標周圍分類好的座標拉進來計算 10/16 06:24
adms:再經過距離和其他條件篩選 10/16 06:25
adms:至於周圍點的算法 不見得要用取平方根求距離 10/16 06:26
adms:如果只是簡單顯示周圍有甚麼點 可以用碰撞偵測的方法 10/16 06:26
adms:虛擬一個框框範圍 符合範圍(碰撞)內的點都拉出來顯示 10/16 06:27
ccpz:算距離可以用 CLLocation 的 10/16 11:13
ccpz:- (CLLocationDistance)getDistanceFrom: 10/16 11:14
ccpz:找鄰近點是資料結構的問題了, 像這就是一種可用的 DS lib: 10/16 11:15
ccpz:http://tinyurl.com/yjaoax8 這是 java lib, ObjC 要找找看 10/16 11:15
Blueshiva:其實- (CLLocationDistance)getDistanceFrom:應該也是算 10/16 12:41
Blueshiva:平方根 :p 10/16 12:41
ccpz:他是把地球當一個圓球去算球面距離 10/16 12:53
ccpz:http://tinyurl.com/yhnubyl 10/16 12:54
Blueshiva:這麼威 @.@? 不過原po應該不需要到這麼精細 10/16 15:15
leondemon:幾公里以內用平面座標算誤差不會太大啦~ XD 10/16 17:44
mickfang:資料結構....都已經還給老師了 哈 沒想到這複雜度超出 10/16 23:53
mickfang:原先的構想了,感謝cc大提供一些資訊,可以少走彎路 10/16 23:54
mickfang:至於資料分類或分區塊我得在想想要怎麼實作比較好,謝謝 10/16 23:58