我听说过地理围栏,我有一些疑问。希望你能回答其中一些问题。
-这是iOS 5.1的新特性,但是地理围栏和使用区域有什么区别呢?从我所读到的几乎是一样的,电池消耗?
-Why我找不到关于地理围栏的苹果文档吗?
-How您是否定义了区域?我可以通过webservice远程添加它们吗?
谢谢。
发布于 2012-10-18 23:16:51
地理栅栏实际上从iOS 4开始就存在了,你可以在Apple Location Awareness Programming Guide中找到关于它的文档。它也被称为“区域监控”。
这些区域使用起来非常简单。使用中心点(经度、经度)、半径和唯一标识符创建CLRegion。然后调用-startMonitoringForRegion。当然,您需要注册一个CLLocationManagerDelegate来侦听回调、-didEnterRegion和-didExitRegion,但这也很容易做到。
您无法远程添加它们。只能从设备上获取。在过去的几年里,我学到了一些关于它们的东西。因此,希望这将为您省去一些麻烦。
Geofences是一种很好的方式,可以为位置添加功能,而不需要任何主动GPS和位置跟踪的开销。在我的经验中,当所有时间都处于开启状态时,geofences不会造成明显的电池耗尽。苹果已经很好地解决了这些问题。它们没有现役GPS那样精确,但它们足够接近了。祝好运。
更新这里的一些信息现在有点过时了。您现在可以监控的区域数量是20个,并且每个应用程序都有上限。此外,最小大小不是100M,它可以更小,但在较小的数字时不能保证精度。
发布于 2013-07-23 03:16:50
自从iOS 4以“区域监控”的形式出现以来,“地理围栏”就一直存在。它使用距离检查来查看您是否进入了一个圆。这不是真正的地理围栏,因为真正的地理围栏是检查点是否落在多边形中(称为多边形中的点)。
在iOS 6中,目前还没有类似于使用多边形中的点的区域监控。要进行真正的地理围栏,您必须结合使用区域监控和GPS。没有关于地理围栏的苹果文档,因为CoreLocation不支持它。
如果你打算采用点在多边形中的方法,我推荐光线投射。有一个Objective-C类可以很好地实现它。它被称为objc-BorderPatrol。
至于从web服务发送栅栏,也许可以做一些类似于Twitter的流API的事情,但这可能太密集了。最好使用重要的位置来更新你的栅栏。如果您打算从web服务发送栅栏,我建议您使用MySQL或PostGRE SQL,因为它们都有非常好的地理空间扩展。
几点注意事项:任何CoreLocation对象都不会调用-> -[CLRegion containsCoordinate:]。所有的距离检查都是内部的。->重要位置每500米或5分钟更新一次,以先到者为准。重要位置使用来自基站的IP地址来确定位置。-> Geofence和区域可以重叠,请跟踪这一点。
https://stackoverflow.com/questions/9955451
复制相似问题