谷歌目前在iOS中的位置准确性

时间:2016-08-15 06:39:10

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

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

我阅读了doc并发现我们根据似然(0到1之间的值)从列表中获取当前位置。

  

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

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

所以我有两个问题:

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

2)如果我离开现在的地方然后我想做一些动作那么我怎么能得到我最近离开这个地方?像签到/出?

1 个答案:

答案 0 :(得分:4)

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

然后您需要遵守协议,该协议至少包含两种方法:

- (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