为啥我在家时得到不同的地点名称?

Posted

技术标签:

【中文标题】为啥我在家时得到不同的地点名称?【英文标题】:Why i am getting different locations name while i am at my home?为什么我在家时得到不同的地点名称? 【发布时间】:2018-07-16 12:45:48 【问题描述】:

我正在开发一个 ios 应用程序来跟踪用户在不同位置的移动。我正在使用 GPS 来提取用户位置[始终从设置位置]。它工作得很好,但是当我在家时,我得到了不同的位置名称。

就像在第 1 间卧室一样,您位于 1503 位置 在第二间卧室,您位于 1702 位置

这些不同的位置更新如何在后台进程中工作?

【问题讨论】:

如果有理解的过程,请告诉我在几米远的地方获得不同的位置名称 我认为这里有一点语言障碍。当您说“1503 位置”时,您指的是街道地址吗?因此,您正在获取用户的 GPS 位置并对其进行地理编码,并发现您返回的街道地址在不同的房间中有所不同? 是的,GPS 位置跟踪,但是在同一个 Home 中获取不同的位置? 【参考方案1】:

这完全取决于您与 CoreLocation 一起使用的服务。您有here 提供的不同服务的列表。标准定位服务(教程here)将是最准确和可定制的,但对电源不太友好。 CoreLocation 通常会为您提供一个位置,然后对其进行更新以获得越来越精确的位置,准确性还取决于您的网络质量。

您可以使用以下几行自定义标准位置服务:

   locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
   locationManager.distanceFilter = 100.0  // In meters.

【讨论】:

【参考方案2】:

所需的准确度很重要。

但是你有没有注意到这一点?

当您在建筑物中并打开 WiFi 时,CoreLocation 也会使用 WiFi 来确定您所在的位置。

如何使用 WiFi 识别位置?

大概是这样的:

假设您的建筑物有 2 个面。左侧 (1502) 和右侧 (1702)。

左侧有一个wifi网络,名为LeftSideOfBuildingWiFi

右侧有wifi网络名称RightSideOfBuildingWiFi

在您的 locationServices 开启的每一刻...Apple 都会捕获 WiFi 网络列表。它将在 1502 处显示 LeftSideOfBuildingWiFi 信号更强。

所以现在其他人进入房子并连接到LeftSideOfBuildingWiFi 或具有更强的信号...Apple 将得出结论,您很可能在 1502。

这有助于保护 iOS 设备的电池。 WiFi 消耗的能量远低于 GPS 芯片本身。

如果您在市中心,情况也是如此。然而,如果你在路上的偏僻地方,那就不适用了。

同样的概念适用于重要的定位服务。他们使用手机信号塔而不是 GPS 芯片。假设您附近有 4 座塔,每座都有不同的信号强度。可能你更接近信号更强的那个...

【讨论】:

【参考方案3】:

GPS 读数有很多错误。在室内时,它们的准确度要低得多,并且可以偏离 1000 多米。考虑到如此多的错误,当您在房子的不同位置时,该位置可能会被地理编码到不同的地址也就不足为奇了。

【讨论】:

以上是关于为啥我在家时得到不同的地点名称?的主要内容,如果未能解决你的问题,请参考以下文章

为啥当删除和重新添加表到 .EDMX 时,一些表以不同的名称出现?

为啥使用相同的 Keras 模型和输入进行预测时会得到不同的结果?

为啥我在使用 CustomListAdapter 时得到不同大小的列表行,即使我尝试为自定义列表行提供特定值

为啥 $handler 在回调中得到不同的值?

为啥我在使用 Scikit-Learn Keras 模型函数时,对于相同的网络配置会得到不同的准确度结果?

为啥在构造函数内部声明和初始化的变量已经在外部以相同的名称声明时被视为不同的变量?