为啥我在家时得到不同的地点名称?
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 时得到不同大小的列表行,即使我尝试为自定义列表行提供特定值