问题讨论如下:
1:用户可以使用我的应用程序使用触发距离和地址注册多个事件。
当用户在附近,离开或穿过注册的事件地点时,如何根据位置触发多个事件。
我必须管理事件并提醒他。
我正在使用 CLLocationManger 委托方法 didUpdateLocation 来跟踪位置距离
请帮我
问题讨论如下:
1:用户可以使用我的应用程序使用触发距离和地址注册多个事件。
当用户在附近,离开或穿过注册的事件地点时,如何根据位置触发多个事件。
我必须管理事件并提醒他。
我正在使用 CLLocationManger 委托方法 didUpdateLocation 来跟踪位置距离
请帮我
iOS 对 Location 的原生支持在Location Awareness Programming Guide中有详细解释。当您浏览它时,您会发现您didUpdateLocation
只是跟踪用户位置的一步。
也就是说,还涉及许多其他步骤:
[locationManager startUpdatingLocation]
- 触发位置管理器开始监控位置更新。
didUpdateLocations
- 代表收到有关位置更新的通知。请注意,您的方法didUpdateLocation
适用于 < iOS 6 的版本。
[locationManager startMonitoringSignificantLocationChanges]
- 触发位置更新事件,以便可以进行准确的监控并节省大量电量。
区域监控- 这是您想要的地理围栏要求。
regionMonitoringAvailable
决定硬件是否支持监视基于形状的区域。startMonitoringForRegion
方法开始监视特定区域。stopMonitoringForRegion
停止监视区域。也就是说,有许多第三方 iOS sdk 提供商为您的 iOS 应用程序内的区域监控提供高级支持。Geoloqi和Parse就是其中的两个。您可以访问他们的 api 页面以了解更多关于他们的监控是多么简单或复杂,并根据定价、复杂性等进行选择。
Nirav 为您提供了 API 中包含的内容的一个很好的概述,我在这里更专注于您在 Apple 文档中找不到的内容:
要检测地理区域的进入和离开,您可以使用
圆形、矩形和封闭多边形。
您将它们与该地理区域的纬度、经度坐标一起存储。
检测进入事件:
如果当前位置状态从外部区域变为内部区域。
检测离开事件:
如果当前位置状态从内部区域变为外部区域。
calculate inside:
多边形内部:在 Stackoverflow 上搜索多边形算法中的点
矩形内部:使用 API
圆形内部:使用 API:从位置到圆心的距离 < 半径