2013-01-15 141 views
1

所以我有jQuery DataTables設置和運行良好。 我最終的目標是允許用戶使用Google地方的自動完成功能,更新他們的位置,然後在刷新時將「可排序」距離列添加到我的DataTables表中。Jquery DataTables排序距離列

計劃是在google autocomplete的文本輸入旁邊有一個按鈕,表示使用此地址,一旦用戶使用自動完成搜索並找到地址,然後按下按鈕,我想(可能)它們發送到加載網頁幾秒鐘,而我們

1)閱讀的文本字符串,格式,它與谷歌的地理編碼API的使用,又名

「克蘭本,維多利亞,澳大利亞」 ----> 「Cranbourne + Victoria + Australia」

2)將其插入地理編碼請求

3)從生成的JSON中提取的緯度和經度值,並將其分配給瓦爾

現在到了最困難的部分,我用一些PHP的思維,來計算用戶(緯度,經度)之間的距離,並且DataTable表中的每個條目都使用外鍵填充了sql數據(所有sql行都有緯度數據)

然後我正在考慮將所述條目發送到xml,只是這次每個條目都會有額外的價值「距離」。

對於一些聰明的代碼來說粗糙,這件事不會花費一秒鐘,然後新的DataTable表格被填充到xml中,只有這一次它包含一個距離列,每列有距離值,粗糙的可排序,沒有任何DataTables黑客如此。

所以,我是愚蠢的,還是這是一個好主意,有沒有更簡單的方法?

我真的很喜歡這個謝謝你的答案。

回答

0

這實際上可能很困難(取決於您的數學專長),因爲它需要使用球形幾何體。如果你想嘗試做自己

https://developers.google.com/maps/documentation/distancematrix/

,你可能想使用該寫的一類,如:您可以考慮使用一個API

http://www.phpclasses.org/browse/file/36294.html

第二選項可能會更好,因爲Google對其API有限制。一旦你有了計算距離的方法,查詢數據庫並創建XML就很簡單了。我不知道爲什麼要使用XML而不是json,但PHP函數json_encode()可能會使它更簡單,並且它受DataTables支持。

0

我知道這是一個非常古老的問題,但我只是碰到它,並希望使用Haversine Formula計算經/緯度值

之間的距離,我用this實施建議,並發現它的工作很奇妙