0
我有300个纬度长的数字存储在数据库中的MySQL远程服务器。我想从我的手机和经纬度计算当前纬度和长度之间的差异,在我的数据库远程长时间。 O纬度和长度在android中
达到此目的的最佳方法是什么?
我在想从手机发送当前的经纬度,然后进行计算并发回差值?
有没有更好的方法?
谢谢!
我有300个纬度长的数字存储在数据库中的MySQL远程服务器。我想从我的手机和经纬度计算当前纬度和长度之间的差异,在我的数据库远程长时间。 O纬度和长度在android中
达到此目的的最佳方法是什么?
我在想从手机发送当前的经纬度,然后进行计算并发回差值?
有没有更好的方法?
谢谢!
300并不是很多数据点。我有超过5万的应用,完全没有问题。
我会将数据库从远程服务器发送到您的手机(或任何列的子集)。
在自己的应用程序,我把世界划分为1°×1°扇区和分配扇区数与
sector = (lat+90)*360 + (lon+180);
有效散列他们。散列码是数据库的一部分。
然后,当我想查找附近的数据点时,我计算当前经度和纬度的扇区号,以及八个相邻扇区的扇区号。然后,我将数据库搜索限制在这九个部门。
之后,只需在数据库中查询那些附近扇区中的数据点,然后计算我当前位置和这些数据点之间的距离。
将数据库下载到手机中的一次性成本,但它后来节省大量的时间和带宽。
如果您的位置数量有限,当应用程序重新启动并从那里使用时,将它们散列/缓存到本地内存中,否则,构建一个web服务,使用电话lon-lat调用服务器并让服务器返回距离。 – alfasin 2013-04-27 00:54:39