【问题标题】:Show an alert when lon/lat is near当 lon/lat 接近时显示警报
【发布时间】:2014-05-03 10:59:37
【问题描述】:

我有一个在 iOS 设备上运行的应用程序,它不断地从设备获取当前的纬度和经度。我想在用户达到某个经度/纬度时显示警报。

这是要达到的时间:2.39364456 这是要达到的纬度:48.84185814

当用户到达这一点时,他应该得到一个警报。

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

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

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

是否可以使用昏迷后的 lon/lat 的数字来创建一个“范围”以便弹出窗口显示?

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

【问题讨论】:

  • 附注你为什么要联系point off the coast of Somalia
  • 是的,假设您指的是法国的位置,latitude 应该是 +48.nnn,longitude 应该是 +2.nnn。
  • 大声笑 michael Dautermann,我突然倒转了 lon 和 lat。我现在编辑了这篇文章。如您所见,它位于法国巴黎。

标签: ios


【解决方案1】:

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

Here is a related question 谈到了这一点。

这里是some Apple sample code

还有最新的Apple documentation that talks about Region Monitoring

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

【讨论】:

  • 非常感谢您的回答。它真的很有帮助,我以后可能会用它来优化我的代码。
【解决方案2】:
        - (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
      }

}

【讨论】:

    【解决方案3】:

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

    第一步

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

    CLLocationDistance distance = [aCLLocationA distanceFromLocation:aCLLocationB];
    

    第 2 步

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-20
      • 2011-10-22
      • 2018-09-05
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多