【问题标题】:Google current place accuracy in iOS谷歌在 iOS 中的当前位置准确性
【发布时间】:2016-08-15 06:39:09
【问题描述】:

我正在使用 google place API 来获取当前位置的正确信息。 I used this code in the App 并成功获取所有附近位置的列表,但我如何才能从列表中识别出我当前的确切位置?

我阅读了文档,发现我们根据可能性(0 到 1 之间的值)从列表中获取当前位置。

可能性值越高意味着该地点是最佳匹配的可能性越大。

但我当前的位置正在进入此列表,但可能性值并不高。

所以我有两个问题:

1) 如何识别我当前的确切位置?是否有任何其他设置或任何警报网方式? (不使用地点选择器)

2) 如果我离开当前位置,那么我想执行一些操作,那么我怎样才能知道我最近离开了这个位置?比如签入/签出?

【问题讨论】:

  • 您收到的可能性值是多少?
  • @KENdi - 我收到了介于 0 到 1 之间的值列表,但最大值不是我当前的位置。那么如何获得准确的可能性值呢?

标签: ios objective-c google-maps google-places-api


【解决方案1】:

Google 的 API 要求您初始化 CLLocationManager。由于您已经有一个位置管理器,您可以将您的类设置为 CLLocationManagerDelegate。这为您提供了原生 iOS 方法,这意味着您可以获得准确位置和位置已更改的通知

要获得准确的位置:

[self.locationManager requestLocation]; //Get the current location once (iOS 9 and above)

监控位置:

[self.locationManager startUpdatingLocation] // Ask for the current location until you call stopUpdatingLocation
// or
[self.locationManager startMonitoringSignificantLocationChanges] // Tells you when your location has greatly changed

然后您需要遵守协议,该协议至少有 2 种方法:

- (void)locationManager:(CLLocationManager *)manager
 didUpdateLocations:(NSArray<CLLocation *> *)locations
// Do anything that you need to do once you have a location update

- (void)locationManager:(CLLocationManager *)manager
   didFailWithError:(NSError *)error
// Your location update failed, handle it

【讨论】:

  • 这对我没有帮助,因为 CLLocationManager 不会给我当前位置的准确信息..比如地名、完整地址、评级等。
  • 您可以将 iOS 返回的位置传递给 Google 以获取有关位置的信息(称为反向地理编码)。 iOS 位置将为您提供纬度和经度,您可以将其提供给https://maps.googleapis.com/maps/api/geocode/json?latlng=xx.xxxxxx,-yy.yyyyyy&amp;key=YOUR_API_KEY。这是一个阅读更多相关信息的链接:developers.google.com/maps/documentation/geocoding/start。否则,最有可能是您的最佳选择
  • 这不会给我准确的位置信息,比如谷歌地方给我的准确信息列表问题只是可能性是错误的,所以我无法获得正确的位置信息。
  • “准确的位置信息”是什么意思?我没有按照您的要求进行操作,因为这将为您提供设备的确切纬度和经度坐标,您可以再次将其传递给 Google API 以获取名称、地址等业务信息
  • 您获得的坐标并非 100% 准确 - 存在误差。现在,到目前为止所描述的 API 和建议的解决方案都没有考虑到这一点。考虑到这一点,您需要知道您的 GPS 精度,然后根据它计算一系列位置。最后,如果精度不够好,你真的无法确切知道你在哪里。我的建议是进行几次测量,然后根据它们计算平均位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 1970-01-01
  • 2018-06-06
  • 2012-10-18
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多