【问题标题】:i can't get user location when i'm in the building with iOS 11当我在使用 iOS 11 的建筑物中时,我无法获取用户位置
【发布时间】:2018-10-01 01:02:15
【问题描述】:

我正在开发一个使用 CLLocationManager 来获取当前用户位置的 iOS 应用程序。 当我离开大楼时,它工作得很好,但我来到 CLLocationManager 的大楼委托时总是向我返回 0。 当我在大楼里时,我能得到确切的位置吗? 我检查了谷歌地图和苹果地图,它的效果很好 请帮助我。

locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.distanceFilter = kCLLocationAccuracyBest;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startMonitoringSignificantLocationChanges];

if(IS_OS_8_OR_LATER) {
    [locationManager requestWhenInUseAuthorization];
    [locationManager requestAlwaysAuthorization];
}
[locationManager startUpdatingLocation];

【问题讨论】:

  • 隐藏这个并尝试[locationManager startMonitoringSignificantLocationChanges];`
  • startMonitoringSignificantLocationChanges -- 只有在检测到位置变化时才有效
  • 当您在大楼内时,您可以在地图应用中获取您的位置吗?
  • 既然你没有提到你使用的是苹果地图还是谷歌地图?我建议您在默认的 iOS 地图和谷歌地图应用程序中检查您的位置,如果您可以在这两个地图中找到该位置,那么您的代码有问题。
  • @Vinaykrishnan 也许我的代码有问题。我已经检查了谷歌地图和苹果地图,它的离开工作良好,但我的应用程序仍然返回 0 和用户位置。

标签: ios gps cllocationmanager


【解决方案1】:

如果您在建筑物内,则不太可能接收到 GPS 信号。除非您的建筑物是已添加到 Apple 室内地图的重要公共场所(机场、购物中心),否则您将无法在室内获得位置。

【讨论】:

  • 感谢您的信息。但我不知道为什么在同一个位置,但苹果地图和谷歌地图可以得到准确的位置,但我的应用程序不能。也许我的来源有问题。
  • 您应该将distanceFilter 设置为kCLDistanceFilterNone,看看是否有帮助。距离过滤器应该以米为单位,kCLLocationAccuracyBest 不是您应该用于此属性的值
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2022-10-18
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多