【问题标题】: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 中获取不同的位置?

标签: ios iphone swift core-location cllocationmanager


【解决方案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 多米。考虑到如此多的错误,当您在房子的不同位置时,该位置可能会被地理编码到不同的地址也就不足为奇了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        • 1970-01-01
        相关资源
        最近更新 更多