当lon / lat接近时显示警报

时间:2014-05-03 10:59:38

标签: ios

我有一个应用程序在iOS设备上工作,从设备不断获得当前的经度和经度。我想在用户到达某个lon / lat时显示警告。

这是很长的路要走:2.39364456 这是要达到的纬度:48.84185814

当用户到达此点时,他应该收到警报。

不幸的是,它不起作用,因为用户并不总能达到这一点。

我想要做的是:如果你接近这一点,在定义的某个范围内,那么我们会弹出警报。

我不知道该怎么做。我尝试实现long / lat到UTM转换器,然后尝试使用UTM格式但是它失败了。

是否可以使用在昏迷之后的lon / lat的数字来设置“范围”,以便弹出显示?

感谢您提前阅读并感谢您的帮助;)

3 个答案:

答案 0 :(得分:2)

听起来您正在寻找iOS中Core Location中的区域监控功能。

Here is a related question谈到这一点。

这是some Apple sample code

最新的Apple documentation that talks about Region Monitoring

当您的应用进入您正在观看的区域时,您的应用会使用CLLocationManager委托"locationManager:didEnterRegion:"方法进行调用。这就是你可以解雇你的UIAlert的地方。

答案 1 :(得分:0)

您有2个位置,aCLLocationA(由您定义的位置)和aCLLocationB用户位置(已更新)。现在你做了什么:

第1步

在地图上的点之间使用此代码查找距离:

CLLocationDistance distance = [aCLLocationA distanceFromLocation:aCLLocationB];

第2步

if(distance<=yourRange)
{
    //You have to show popup, because your location is in range with that point
}

答案 2 :(得分:0)

        - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
    {
        NSLog(@"didUpdateToLocation: %@", newLocation);
        CLLocation *currentLocation = newLocation;

        if (currentLocation != nil) {
       CLLocation *locA = [[CLLocation alloc] initWithLatitude:currentLocation.coordinate.latitude longitude:currentLocation.coordinate.longitude];

        }
            CLLocation *locB = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];
            distance = [locA distanceFromLocation:locB];
      if(distance<yourDesiredDiustance)
      {
       show Alert
      }

}