我正在开发一个iOS应用程序,以跟踪不同位置的用户移动。我正在使用GPS提取用户位置[总是从设置位置]。效果很好,但是我在家时却得到了不同的位置名称。
与第一间卧室一样,您位于1503年 在第二间卧室,您在1702号位置
这些不同位置的更新如何在后台运行?
答案 0 :(得分:0)
这全部取决于您与CoreLocation一起使用的服务。您有here个提供的不同服务的列表。标准位置服务(教程here)将是最准确和可自定义的,但对电源的友好程度较低。 CoreLocation通常会为您提供位置,然后对其进行更新以使您获得越来越精确的位置,准确性还取决于您的网络质量。
您可以使用以下几行来自定义标准位置服务:
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 100.0 // In meters.
答案 1 :(得分:0)
期望的准确度很重要。
当您在建筑物中并打开WiFi时,CoreLocation会使用WiFi来精确定位您的位置。
如何使用WiFi识别位置?
大致是这样的:
想象一下您的建筑物有2面。左侧(1502)和右侧(1702)。
左侧有一个名为LeftSideOfBuildingWiFi
的wifi网络
右侧有一个wifi网络名称RightSideOfBuildingWiFi
每当您打开locationServices ... Apple将捕获WiFi网络列表。它会说在1502年,LeftSideOfBuildingWiFi具有更强的信号。
因此,现在有人进入房屋并连接到LeftSideOfBuildingWiFi
或发出更强烈的信号……苹果会得出结论,您可能在1502年。
这有助于节省iOS设备的电池。 WiFi消耗的能量远远少于GPS芯片本身。
如果您在市区,情况也是如此。但是,如果您处在漫无目的的道路上,那将不适用。
相同的概念适用于重要的位置服务。他们使用手机信号塔而不是GPS芯片。假设您附近有4个塔,每个塔都有不同的信号强度。可能您更接近信号更强的那个……
答案 2 :(得分:0)
GPS读数有很多错误。在室内时,它们的准确度会大大降低,并且可能会偏离1000多米。由于存在很多错误,当您在房屋的不同部分中时,该位置可能会地理编码到不同的地址,这一点也不奇怪。