我在MySQL远程服务器的DB中存储了300个lat长号。我想远程计算我的手机和lat中当前lat和long之间的差异。 0
实现这一目标的最佳方式是什么?
我在想从手机发送当前的lat和long并进行计算并发回差异?
有更好的方法吗?
谢谢!
答案 0 :(得分:1)
300不是很多数据点。我有一个超过50,000的应用程序,这根本不是问题。
我会将数据库从远程服务器发送到您的手机(或者无论如何都是列的一部分)。
在我自己的应用程序中,我将世界划分为1°x1°扇区,并使用
分配扇区号sector = (lat+90)*360 + (lon+180);
有效地散列它们。哈希码是数据库的一部分。
然后,当我想查找附近的数据点时,我计算当前纬度和经度的扇区号,以及8个相邻扇区的扇区号。然后我将数据库搜索限制在这九个扇区。
之后,只需在数据库中查询附近区域中的数据点,并计算当前位置与这些数据点之间的距离。
将数据库下载到手机中的费用是一次性的,但以后可以节省大量的时间和带宽。