1

所以我有 jQuery DataTables 设置并运行良好。我的最终目标是允许用户使用谷歌位置自动完成,更新他们的位置,然后在刷新时将“可排序”距离列添加到我的 DataTables 表中。

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

1)读取文本字符串,将其格式化以与谷歌地理编码api一起使用,又名

“Cranbourne, Victoria, Australia” ----> “Cranbourne+Victoria+Australia”

2)将其插入地理编码请求

3) 从生成的 json 中提取 lat 和 lon 值,并将它们分配给 vars

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

然后我正在考虑将所述条目发送到 xml,只是这次每个条目都会有一个额外的值“DISTANCE”。

粗略的一些聪明的代码,这整个事情不会花一秒钟,然后用 xml 填充新的 DataTable 表,只是这一次它包含一个距离列,每行的距离值,粗略的将是可排序的,没有任何 DataTables破解什么。

那么我是愚蠢的,还是这是一个好主意,有没有更简单的方法?

我真的很想得到一些答案,谢谢。

4

2 回答 2

0

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

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

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

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

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

于 2013-01-15T15:49:39.217 回答
0

我知道这是一个非常古老的问题,但我刚刚遇到它并想推荐使用Haversine 公式来计算纬度/经度值之间的距离

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

于 2016-06-02T14:00:59.710 回答