Jquery数据表排序距离列


Jquery DataTables sortable distance column

所以我有jQuery数据表设置和运行良好。我的最终目标,是允许用户使用谷歌位置自动补全,更新他们的位置,然后有一个"可排序"的距离列添加到我的DataTables表,在刷新。

计划是有一个按钮旁边的文本输入谷歌自动完成,这说使用这个地址,一旦用户搜索并找到一个地址使用自动完成,然后按下按钮,我想(可能)发送他们到一个加载页面几秒钟,而我们

1)读取文本字符串,将其格式化以用于Google地理编码api,即

"Cranbourne, Victoria, Australia" ----> "Cranbourne+Victoria+Australia"

2)插入到geocode请求中

3)从结果json中提取lat和lon值,并将它们分配给变量

现在是困难的部分,我正在考虑使用一些php来计算用户(lat,long)和DataTable表中每个条目之间的距离,该表使用外键填充sql数据(所有sql行都有lat - lon数据)

然后我在考虑将上述条目发送到xml,只是这次每个条目将有一个额外的值"DISTANCE"。

粗略地说,如果有一些聪明的代码,整个过程不会花一秒钟,然后用xml填充新的DataTable表,只是这一次它包含一个距离列,每行都有距离值,这将是可排序的,没有任何DataTable hack之类的。

是我笨,还是这是个好主意,有更简单的方法吗?

我真的很想知道这个问题的答案,谢谢。

这实际上可能很困难(取决于您的数学专业知识),因为它需要使用球面几何。您可以考虑使用API:

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

如果您想尝试自己做,您可能需要使用为此编写的类,例如:

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

第二个选项可能更好,因为Google对其API有限制。一旦有了计算距离的方法,查询数据库和创建XML就很简单了。我不知道为什么要使用XML而不是json,但是PHP函数json_encode()可能会使它更简单,并且它由数据表支持。

我知道这是一个非常古老的问题,但我只是偶然发现它,并想建议使用哈弗辛公式来计算长/宽值之间的距离

我使用过这个实现,发现它工作得非常好