0

我在 MySQL 远程服务器的数据库中存储了 300 个经纬度数。我想远程计算我的手机和我的数据库中的 lat, long 之间的当前纬度和经度之间的差异。○

实现这一目标的最佳方法是什么?

我在想从手机发送当前的纬度和经度并进行计算并将差值发回?

有没有更好的办法?

谢谢!

4

1 回答 1

1

300不是很多数据点。我有一个超过 50,000 的应用程序,完全没有问题。

我会将数据库从远程服务器发送到您的手机(或列的子集)。

在我自己的应用程序中,我将世界划分为 1°x1° 扇区并分配扇区编号

sector = (lat+90)*360 + (lon+180);

有效地散列它们。哈希码是数据库的一部分。

然后,当我想查找附近的数据点时,我计算当前纬度和经度的扇区号,以及八个相邻扇区的扇区号。然后我将我的数据库搜索限制在这九个领域。

之后,只需在数据库中查询附近扇区的数据点,并计算我当前位置与这些数据点之间的距离。

将数据库下载到手机需要一次性成本,但以后可以节省大量时间和带宽。

于 2013-04-27T01:01:18.333 回答