计算php或js中的距离

Calculate the distance within php or js?

本文关键字:距离 js php 计算      更新时间:2023-09-26

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

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

知道吗?

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

如果不太了解您的问题,我可能会在客户端(或"在JS中")执行计算密集型任务。这将永远不会给服务器端应用程序带来太大的负载,因为它会在客户端之间分发。

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

您可能会考虑的其他事项:

  • 在服务器端执行并缓存结果
  • 使用googleapi并将其缓存在服务器上
  • 更多

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

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

计算距离的最佳方式完全取决于您的应用程序。如果你的客户端有这些信息,那么JS会更好。

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

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

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