Geo Fencing功能iOS 11

问题描述 投票:0回答:1

我正在使用Google地图开发Geo fence。我的问题是关于CLCircularRegion的最小半径。因为我想与该地区合作30米。但功能适用于100米。我搜索了很多,发现Apple需要最小半径100来创建一个区域,无论我设置30米还是50米。

这是链接 - Geofencing iOS 6

此外,didEnterRegion在100米处打电话并且didExitRegion的工作非常奇怪并耗费了很多时间。我还读过,根据这些方法的说法,它取决于塔式细胞等。

这是链接 - What is the maximum and minimum radius that can be set for regions in iOS geofencing

我想知道我是否将地区设置为50米。为什么它不按要求的区域半径工作。事实上,我发现它适用于半径100米。

这是代码:

 func createRegion(lat : CLLocationDegrees,lng : CLLocationDegrees) -> CLCircularRegion?
    {
        let latitude = lat 
        let longitude = lng 
        var radius = CLLocationDistance(50)

        if radius > locationManager.maximumRegionMonitoringDistance
        {
            radius = locationManager.maximumRegionMonitoringDistance
        }

        let region = CLCircularRegion(center: CLLocationCoordinate2DMake(latitude, longitude), radius: radius, identifier: "TEST")

        region.notifyOnEntry = true
        region.notifyOnExit = true

        return region
    }

或者任何人都可以推荐具有Geo fence功能的优秀应用。这样我就可以将我的应用程序的准确性与它进行比较。

问题:我选择了半径50米,“退出时”通知应该到来。但是我收到了250米左右的通知,而且时间超过了这个时间。请帮帮我

谢谢!

swift google-maps ios11 geofencing
1个回答
1
投票

看一下Apple的开发者文档:

Article Apple

Official Documentation

在iOS模拟器或设备上测试区域监控代码时,请注意区域事件可能不会在跨越区域边界后立即发生。为防止虚假通知,iOS在满足某些阈值条件之前不会发送区域通知。具体而言,用户的位置必须越过区域边界,远离边界移动最小距离,并在报告通知之前保持在该最小距离至少20秒。

特定阈值距离由当前可用的硬件和定位技术确定。例如,如果禁用Wi-Fi,则区域监控的准确性要低得多。但是,出于测试目的,您可以假设最小距离约为200米。

并提醒如果Wi-Fi被禁用,那么它将不太准确。

© www.soinside.com 2019 - 2024. All rights reserved.