是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?

     2023-03-05     155

关键词:

【中文标题】是否可以仅使用区域监控 + GSM 并获得不超过 5 公里的水平精度?【英文标题】:Is it possible to use only region monitoring + GSM and to get not more than 5 km horizontalAccuracy? 【发布时间】:2011-11-07 08:28:48 【问题描述】:

我想分享我执行的测试场景的信息,并请您分享您在区域监控方面的经验。因此,我注册了两个相对的区域(A 和 B),半径为 5 公里,期望精度为 1 公里,它们之间的距离为 20 公里。但是,从 A 到 B 时,我没有收到任何 didEnterRegion/didExitRegion 事件。在我的应用原型中,我还放置了两个按钮(用于测试目的):一个开始重大更改,另一个是标准位置监控。两者都在屏幕日志上打印 didUpdateToLocation 事件。

因此,在到达区域 B 的中心并对不可预测的功能感到非常恼火后,我启用了重要的监控。之后,我收到了几个水平精度约为 8.5 公里的 didUpdateToLocation!哇,这很痛,因为我想做的就是拥有一个功能,通知用户,他想要的地方是距离他当前位置位置 5 公里半径的某个地方,我想依靠 GSM 小区三角定位仅检测方法(用于保存电池)。

那么,回到我的情况。在遇到如此大的 8 公里误差后,我启用了具有最佳精度的标准监控 (GPS)。还有宾果游戏,我收到了水平精度为 399 m 的 didUpdateToLocation 事件,然后我才从我的初始位置(区域 A)收到了 didExitRegion,以及另一个带有 didEnterRegion (B) 的事件。来自 didUpdateToLocation 的另一个更新更准确 - 50m。

在以前的场景中,我的准确性也不稳定。有时有 4 公里的水平精度,有时更少。但主要的问题是,如果我们想保护电池(Apple 在文档中告诉我们),那么我们是否可以仅依靠区域监控 + GSM 而不使用 GPS?有一个带有“正确使用区域监控”的 Apple 代码示例 (here),但是其中有一些不可接受的地方:

1) 他们声明示例代码仅适用于 iPhone4,尽管 Apple 文档声明 iOS4.0+ 支持区域监控和重要监控。酷,哈?

2) 示例代码使用所有 3 种定位方法:显着、标准、区域。它一直使用区域监控,但此外还使用最准确的标准位置。当应用程序进入后台时,它会停止标准并开始重大更改监控。进入前台时,应用程序会显着停止并启动标准位置。似乎苹果文档很模糊,不清楚如果我们只使用区域监控,我们会得到什么惩罚(horizo​​ntalAccuracy),还是我们总是使用所有三种方法?

3) Apple 文档声明我们需要保留电池并根据需要使用最低定位服务,如果我们不需要 GPS,那么我们应该使用 GSM(例如,1 - 3 公里所需的精度)。但是示例代码使用最佳期望精度 (GPS) 来进行区域监控和标准监控(当应用程序处于前台时)。我知道 GPS 可以解决我所有的错误和准确性问题,但是只使用 GSM 呢?在我的场景中获得 8.5 公里的水平精度后,我不确定是否可以使用区域监控,因为它无法提供至少 5 公里的可接受误差。

【问题讨论】:

【参考方案1】:

根据我的经验,区域监控非常准确,不会对电池寿命造成重大损失。我有一个只有 30-50 米宽的区域的使用场景。准确性完全没有问题。我要说的一件事是,我只针对 iPhone 4 及以上设备。如果我想支持 3GS 模型,我将需要实施您所说的一些更改。

当纯粹依赖 -startMonitoringForRegion 时,您的更新会在 -didEnter 和 -didExit 事件上自动触发。这些是通过位置跟踪事件的组合触发的。重大变化、信号塔传输、WiFi 连接、另一个应用程序请求位置以及其他一些。当这些其他共享位置事件触发回调时,操作系统会进行处理。根据我的经验,它非常准确。但这仅适用于 iPhone 4 及更高版本。

我还使用 Apple 的示例应用程序进行设置,但文档中没有详细说明何时/何地获得触发器的细节。您可以在Location Awareness Guide. 中阅读 Apple 提供的内容,希望对您有所帮助。

【讨论】:

感谢分享信息。我在地区和重要方面的经验与你的完全相反。重要和区域监控主要依赖于手机信号塔及其物理位置(如果没有其他应用程序请求 GPS 或没有 Wifi),如果它们的密度不够,那么可能会出现问题。我居住的城市人口约为 30 万人,我不知道这是不是问题的原因。今天,我用相同的参数(5 公里半径,3 所需精度)测试了我城市内的几个区域。但是,我没有按时得到 didEnterRegion。 我开车行驶了大约 8 公里的距离,同时,我正在使用重大变化监控,记录所有事件。奇怪,但即使在 didUpdateToLocation 中收到了一个水平精度约为 1 公里的新位置,并且几乎位于所需区域的中心之后,我也没有得到该区域的 didEnterRegion。但是,经过测试,我查看了日志,发现 didUpdateToLocation 中的大多数事件都有 3 - 3.5 km 的水平精度。坐标很好,因为我将它们全部存储在 sqliteDB 中,并在 didUpdateToLocation 和注册区域中使用它们。 恕我直言,如果重大变化位置以 3.5 公里的精度运行,则区域无法更准确,因为它们都使用相同的机制并共享核心位置结果。 很高兴知道您是如何进行测试的。城市有多大,你在什么密集的地方等等。你当时用过wifi吗? 我主要在模拟器上使用定位工具进行了测试。一旦我掌握了基础知识,我就安装到我的设备上,并在我的房子和办公楼上进行了测试。能够很容易地看到我何时离开家和何时到达工作。我为插件道歉,但如果它有帮助,您可以下载我的应用程序并使用我的方法查看这些区域如何为您工作。您必须创建一个帐户并通过我们的网站添加您的围栏,但可能会有所帮助。在应用商店中搜索 Simple In/Out。希望这会有所帮助。

监控重叠区域

...述】:我在ios6和7中使用区域监控。如果区域不重叠,它可以正常工作。但如果某些区域重叠,则应用仅针对一个区域调用委托方法didEnterRegion。我的代码:_locationManager=[[CLLocationManageralloc]init];_locationManager.del 查看详情

如何为超过 20 个区域启动MonitoringForRegion

...知道如何监控超过20个区域,因为它在ios中的最大区域数可以监控if([AllRegionsArraycount]>0)for(inti=0;i<[AllRegions 查看详情

有没有办法监控对象的变化?

...stoanobject?【发布时间】:2011-09-0704:13:48【问题描述】:您是否可以仅根据用户操作触发事件并仅监听对象的更改并做出反应?【问题讨论】:***.com/questions/1029241/…【参考方案1】:嗯,根据您正在使用的域,您可以使用backbone.js-... 查看详情

是否有任何选项可以使用 twitter4j 获得超过 10 个 twitter 热门话题?

】是否有任何选项可以使用twitter4j获得超过10个twitter热门话题?【英文标题】:Isthereanyoptioninordertogetmorethan10twittertrendingtopicswithtwitter4j?【发布时间】:2021-07-2420:45:52【问题描述】:我正在尝试让主题标签在Twitter上得到更多使用... 查看详情

CoreLocation:一次只监控某些区域

...:48【问题描述】:在我的iPhone应用程序中,我想监控用户是否一次进入某些特定的地理区域并采取相应的行动。我现在看到,使用新的iOS4可以将一些兴趣区域(CLRegion)注册到CLLocationManager,所以它会为我做一些工作,但是 查看详情

图像处理中roi是啥意思

...该区域以便进行进一步处理。使用ROI圈定你想读的目标,可以减少处理时间,增加精度。感兴趣区(RegionofInterest,ROIs)是图像的一部分,它通过在图像上选择或使用诸如设定阈值(thresholding)或者从其他文件(如矢量>转换获得等方法... 查看详情

是否可以仅使用 SqlConnection SqlCommand 和 SqlDataReader 来执行数据访问层

】是否可以仅使用SqlConnectionSqlCommand和SqlDataReader来执行数据访问层【英文标题】:isitoktodotheDataAccessLayerusingonlySqlConnectionSqlCommandandSqlDataReader【发布时间】:2011-01-1506:05:37【问题描述】:我知道现在有很多现成的东西可供您使用... 查看详情

多边形剪裁:仅“可见”区域

...发布时间】:2011-11-1020:26:00【问题描述】:在下图中,您可以在(1)中看到一个三角形和一个圆形。给定那个三角形中的一个专用点X,我想剪掉从这个点看不到的所有东西。使用(2)中的简单多边形差异算法仅删除圆没有问题。... 查看详情

是否可以获得当前位置与街道、大道或区域之间的距离?

】是否可以获得当前位置与街道、大道或区域之间的距离?【英文标题】:isitpossibletogetdistancebetweencurrentlocationandastreet,avenueorarea?【发布时间】:2017-02-0318:35:08【问题描述】:所有关于计算距离的解决方案都是在两点之间。我的... 查看详情

iPhone 上最多可以监控多少个区域?

】iPhone上最多可以监控多少个区域?【英文标题】:What\'sthemaximumnumberofregionsthatcanbemonitoredoniPhone?【发布时间】:2010-07-3004:04:14【问题描述】:有人知道共享区域的最大数量是多少吗?如果超过它,你会收到regionMonitoringDidFail调... 查看详情

区域监控 - didEnterRegion

...发布时间】:2010-09-2407:29:15【问题描述】:我想检查iPhone是否在特定区域以及我从web获取的区域坐标。在web区域是一个多边形,但由于CLregion只有一个函数,即initCircularRegion,我如何转换多边形区域的点得到一个我可以监视的圆... 查看详情

是否可以仅在我的项目中使用 Django 模型模块?

】是否可以仅在我的项目中使用Django模型模块?【英文标题】:IsitpossibletouseDjangomodelsmoduleonlyinmyproject?【发布时间】:2017-01-0709:45:49【问题描述】:我正在开发一个使用Celery的小型独立python应用程序。我已经使用django框架构建了... 查看详情

如何裁剪仅在透明区域显示的图像?

...发布时间】:2012-06-2105:16:39【问题描述】:在图像中,您可以显示一个已修复的框架。我想裁剪部分图像,只显示在框架的透明区域。那么如何找到框架的透明区域?以及如何仅获得仅显示在透明区域中的背后图像...?【问题讨... 查看详情

是否可以仅使用用户从我的 .net 核心应用程序登录 Azure 并通过?

】是否可以仅使用用户从我的.net核心应用程序登录Azure并通过?【英文标题】:IsitpossibletologintoAzurefrommy.netcoreappusingjustuserandpass?【发布时间】:2021-11-2418:44:10【问题描述】:我正在尝试从我的应用程序登录到Azure,以从AzureBlob获... 查看详情

是否可以强制现有 Java 应用程序使用不超过 x 个内核?

】是否可以强制现有Java应用程序使用不超过x个内核?【英文标题】:IsitpossibletoforceanexistingJavaapplicationtousenomorethanxcores?【发布时间】:2012-02-1113:32:01【问题描述】:我们正在对现有Java程序进行基准测试。它们是线程应用程序,... 查看详情

是否可以在不安装应用程序的情况下获得 ios 设备令牌?

】是否可以在不安装应用程序的情况下获得ios设备令牌?【英文标题】:isitpossibletogetaniosdevicetokenwithoutinstallingtheapp?【发布时间】:2012-01-0319:15:53【问题描述】:我想管理某些iOs设备。我不想在设备上安装任何应用程序。我读到... 查看详情

是否可以在 pytorch 的嵌入层中仅冻结某些嵌入权重?

】是否可以在pytorch的嵌入层中仅冻结某些嵌入权重?【英文标题】:Isitpossibletofreezeonlycertainembeddingweightsintheembeddinglayerinpytorch?【发布时间】:2019-07-2207:16:16【问题描述】:在NLP任务中使用GloVe嵌入时,数据集中的某些单词可能... 查看详情

是否可以使用 findAll() 创建查询并通过使用来自 pivot 的 ForeignKey(关系多对多)获得过滤结果?

】是否可以使用findAll()创建查询并通过使用来自pivot的ForeignKey(关系多对多)获得过滤结果?【英文标题】:IsthatpossibletocreatequeryusingfindAll()andgetfilteredresultbyusingForeignKeyfrompivot(relationmany-to-many)?【发布时间】:2019-12-2922:12:19【问... 查看详情