检测用户是否进入或离开某个区域 - 地理编码

时间:2012-01-11 12:58:28

标签: iphone ios geolocation core-location

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

我能够进行正向和反向地理编码(我猜,它并不完美)。

现在,我正在尝试检测用户(设备)是否进入或离开某个区域。为此,我选择了苹果的示例代码“Regions”。该示例使用regionMonitoring。我已经在设备中试用了它,但效果不佳。我设置了一个半径25米的区域,当我离开该区域(步行)时没有发生任何事情。

我的问题是:有另一个更好的方法,检测用户是否进入或离开某个区域,而不是regionMonitoring

有人可以在这帮助我吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

您可以让用户位置跟踪在后台运行(here is a good tutorial),但请记住,电池使用可能比regionMonitoring更重。

答案 1 :(得分:0)

我找到了一个计算两个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;
}