计算php或js内的距离?

时间:2012-09-09 15:45:14

标签: javascript database google-maps client-server distance

首先,我不确定这个问题应该在stackoverflow还是其他stackexchange网络中。所以如果错误的地方只为我移动。

最好计算DB或js中2个lat / lng点之间的距离? 由于Google地图提供了computeDistanceBetween()。这真的很容易使用,但我想如果我有10000行,只有5行在距离内并显示在地图中。

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

如果你的问题只是关于应该在哪里计算,那么我更喜欢客户端。它简单,快速,灵活和动态,您可以卸载服务器。

答案 1 :(得分:0)

在不了解您的问题的情况下,我可能会在客户端(或“在JS中”)执行计算密集型任务。通过在客户端之间分发,这绝不会给服务器端应用程序带来太多负担。

当然,要选择最佳方法,您必须考虑许多变量。

您可以考虑的其他事项:

  • 在服务器端执行并缓存结果,
  • 使用google-api并将其缓存在您的服务器上,
  • 还有很多......

答案 2 :(得分:0)

这取决于计算的频率。 如果您的积分是永久性的,那么您可以在将行插入表格之前仅计算所有所需距离,并保存计算结果以便以后将其提供给客户。 但是如果计算是可重复的并且点的坐标最终会改变,那么最好使用客户端计算。 实际上,浏览器执行一些即使对很多点也能计算距离的JavaScript并不是一项艰巨的任务。 此外,如果您有大量的输入数据,您可以考虑在客户端进行一些背景预先计算,并在localStorage *中考虑结果缓存,这样您的用户就永远不会等待。

* store.js可以帮助您确保跨浏览器兼容性。

答案 3 :(得分:0)

最好计算距离完全取决于您的应用。如果客户端有信息,那么在JS中更好。

在这种情况下,您似乎正在尝试计算存储在数据库中的最近点到给定点。使用地理空间索引的数据库当然可以更好地处理这种情况。

典型算法使用简单的方法缩小结果集。在x& y +/- 10KM,然后使用该结果集进行完整计算。

我想说如果您的信息在数据库中,那么请考虑使用内置的地理空间工具为您的DBMS。