当手机到达一组位置时做一些事情?

时间:2010-06-01 15:58:37

标签: android geolocation

我有一个标识为POI的数据库中的坐标列表。对于一个城市可能会有> 100条记录。

我希望在手机进入其中一个位置的150米范围时收到通知。位置坐标也有误差/半径,通常为10到100米。由于我没有找到为触发器添加每个位置(可能是数百个)的好处,我该如何优化唤醒代码?

我是否还可以选择从队列中删除以前设置的通知?

3 个答案:

答案 0 :(得分:2)

您可以使用坐标计算唯一哈希,将POI存储在某种智能哈希表中。每次位置更新到达时,您都会在哈希表中查找当前位置附近是否有POI。此查找应该只采用O(1),因为它是一个哈希查找。

计算散列并存储POI时,应考虑所需的范围。

只是一个想法!

亲切的问候, mefiX

答案 1 :(得分:0)

有一个名为Locale的应用程序,可以根据您的GPS位置或可用的Wifi网络或手机站ID等切换各种事件

它还有一个插件接口。检查该应用程序并为其编写插件可能很有用。

答案 2 :(得分:0)

这个问题让我想起了电子游戏中的图形。无需加载远离您的移动范围的点。我将地图分解为一个网格,为8个adjecent网格块设置触发器,然后为当前网格块中的每个POI设置触发器。到达新的网格块时,将更新触发器。考虑到误差范围,重叠网格块可能很聪明。