检测用户是否进入或离开地区 – 地理编码

我从地理编码开始。 我有很多疑问。

我能够向前和反向地理编码(我猜,它不完美)。

而现在,我试图检测用户(设备)是否进入或离开一个地区。 为此,我拿起苹果的示例代码“ Regions ”。 该示例使用regionMonitoring 。 我已经在设备上试过了,但是效果不好。 我设置了一个半径25米的地区,当我离开这个地区(行走)时,什么都没有发生。

我的问题是:还有另外一个更好的方法来做这件事情,检测用户是否进入或离开区域,比regionMonitoring

有人可以帮我吗?

非常感谢。

你可以保持在后台运行的用户位置跟踪( 这是一个很好的教程 ),但要记住,这可能比regionMonitoring电池使用更重。

我发现一个解决scheme来计算两个CLLocationCoordinate2D之间的距离,它比我更容易:

 - (CLLocationDistance) DistanceBetweenCoordinate:(CLLocationCoordinate2D)originCoordinate andCoordinate:(CLLocationCoordinate2D)destinationCoordinate { CLLocation *originLocation = [[CLLocation alloc] initWithLatitude:originCoordinate.latitude longitude:originCoordinate.longitude]; CLLocation *destinationLocation = [[CLLocation alloc] initWithLatitude:destinationCoordinate.latitude longitude:destinationCoordinate.longitude]; CLLocationDistance distance = [originLocation distanceFromLocation:destinationLocation]; [originLocation release]; [destinationLocation release]; return distance; }