首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地理围栏功能iOS 11

地理围栏功能iOS 11
EN

Stack Overflow用户
提问于 2018-05-07 13:21:44
回答 2查看 1.4K关注 0票数 1

我正在Geo fence谷歌地图上工作。我的问题是CLCircularRegion.的最小半径因为我想和这个地区合作30米。但这种功能适用于100米。我搜索了很多,发现苹果需要最小半径100来创建一个区域,无论我设置了30米或50米。

下面是链接- 地学iOS 6

此外,100米处的didEnterRegion调用和didExitRegion的工作非常奇怪,花费了很多时间。我也读过,这取决于塔细胞等,根据这些方法调用。

这是链接- iOS地学中可以为区域设置的最大和最小半径是多少?.

我想知道我是否把这个地区设为50米。为什么它没有按照所需的区域半径工作。事实上,我观察到它是在半径100米的范围内工作。

以下是代码:

代码语言:javascript
复制
 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米左右,而且有一段时间比这个还要长。请帮我摆脱

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-09-04 20:35:52

看看Apple`s文档:

文章苹果

正式文件

在iOS模拟器或设备上测试区域监视代码时,要意识到区域事件可能不会在区域边界被跨越之后立即发生。为了防止虚假通知,iOS在满足某些阈值条件之前不会传递区域通知。具体而言,用户的位置必须跨越区域边界,以最小距离离开边界,并在报告通知之前至少保持该最小距离20秒。 具体的阈值距离由硬件和当前可用的定位技术决定。例如,如果Wi被禁用,区域监控的准确性就会大大降低.但是,出于测试目的,您可以假设最小距离大约为200米。

并提醒,如果无线网络被禁用,那么它将是不准确的。

票数 3
EN

Stack Overflow用户

发布于 2021-08-11 14:18:25

我认为您可以通过查看控制台中的设备日志来反向工程设备上的最小半径。例如,如果我在iPhone 8上用iOS 14.7设置半径小于100米,将得到以下日志语句:

代码语言:javascript
复制
Fence:Start Started monitoring fence myapp/<private> (<<private>,<private>>, radius 100.000, active tech <private>)...

所以,在我的情况下,1亿英镑似乎是最低的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50215286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档