首先,我不确定这个问题应该在stackoverflow还是其他stackexchange网络中。所以如果错误的地方只为我移动。
最好计算DB或js中2个lat / lng点之间的距离? 由于Google地图提供了computeDistanceBetween()。这真的很容易使用,但我想如果我有10000行,只有5行在距离内并显示在地图中。
有什么想法吗?
答案 0 :(得分:0)
如果你的问题只是关于应该在哪里计算,那么我更喜欢客户端。它简单,快速,灵活和动态,您可以卸载服务器。
答案 1 :(得分:0)
在不了解您的问题的情况下,我可能会在客户端(或“在JS中”)执行计算密集型任务。通过在客户端之间分发,这绝不会给服务器端应用程序带来太多负担。
当然,要选择最佳方法,您必须考虑许多变量。
您可以考虑的其他事项:
答案 2 :(得分:0)
这取决于计算的频率。 如果您的积分是永久性的,那么您可以在将行插入表格之前仅计算所有所需距离,并保存计算结果以便以后将其提供给客户。 但是如果计算是可重复的并且点的坐标最终会改变,那么最好使用客户端计算。 实际上,浏览器执行一些即使对很多点也能计算距离的JavaScript并不是一项艰巨的任务。 此外,如果您有大量的输入数据,您可以考虑在客户端进行一些背景预先计算,并在localStorage *中考虑结果缓存,这样您的用户就永远不会等待。
* store.js可以帮助您确保跨浏览器兼容性。
答案 3 :(得分:0)
最好计算距离完全取决于您的应用。如果客户端有信息,那么在JS中更好。
在这种情况下,您似乎正在尝试计算存储在数据库中的最近点到给定点。使用地理空间索引的数据库当然可以更好地处理这种情况。
典型算法使用简单的方法缩小结果集。在x& y +/- 10KM,然后使用该结果集进行完整计算。
我想说如果您的信息在数据库中,那么请考虑使用内置的地理空间工具为您的DBMS。