Android 当手机到达一组位置时,您会做些什么?

Android 当手机到达一组位置时,您会做些什么?,android,geolocation,Android,Geolocation,我在数据库中有一个坐标列表,标识为POI。对于一个城市来说,可能超过100条记录 我想在手机进入其中一个位置150米范围内时得到通知。位置坐标也有误差/半径,通常为10到100米。既然我觉得为触发器添加每个位置(可能是数百个)并不好,那么如何优化唤醒代码呢 还有从队列中删除先前设置通知的选项吗?您可以使用坐标将POI存储在某种智能哈希表中,以计算唯一哈希。每次位置更新到达时,您都会在哈希表中进行查找,以查看当前位置附近是否存在POI。由于此查找是散列查找,因此应仅采用O(1) 在计算哈希和存储P

我在数据库中有一个坐标列表,标识为POI。对于一个城市来说,可能超过100条记录

我想在手机进入其中一个位置150米范围内时得到通知。位置坐标也有误差/半径,通常为10到100米。既然我觉得为触发器添加每个位置(可能是数百个)并不好,那么如何优化唤醒代码呢


还有从队列中删除先前设置通知的选项吗?

您可以使用坐标将POI存储在某种智能哈希表中,以计算唯一哈希。每次位置更新到达时,您都会在哈希表中进行查找,以查看当前位置附近是否存在POI。由于此查找是散列查找,因此应仅采用O(1)

在计算哈希和存储POI时,应考虑所需的范围

只是个主意

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


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

这个问题让我想起了视频游戏中的图形。没有必要加载远远超出您移动范围的点。我将地图分解成一个网格,为8个相邻的网格块设置触发器,然后为当前网格块内的每个POI设置触发器。当到达新网格块时,将更新触发器。考虑到错误的范围,重叠网格块可能是明智的。

据我所知,在Android中,你设置通知触发器的方式是,当手机到达坐标x,y时,你告诉系统
给我打电话
,你已经告诉坐标了。我可以为我的所有POI设置通知,但这可能无法很好地处理数百条记录。监听位置更新可能是一个耗电的过程,因此需要应用程序运行。Android SDK有一个
addProximityAlert
方法,可以用于这个确切的目的。我知道语言环境的存在,我想做一些非常类似的事情,但目的不同。我不能使用区域设置的插件sdk。