2016-08-15 4 views
5

Я использую API google place для получения правильной информации о текущем месте. I used this code in the App и получите успех, чтобы получить список всех ближайших местоположений, но как я могу узнать свое точное текущее местоположение из списка?Точность текущего местоположения Google в iOS

Я прочитал документ и обнаружил, что мы получаем текущее местоположение из списка на основе правдоподобия (от 0 до 1).

Более высокая ценность правдоподобия означает большую вероятность того, что место является наилучшим.

Но мое текущее местоположение входит в этот список, но значение правдоподобия не выше.

Поэтому у меня есть два вопроса:

1) Как я могу признать мое точное текущее местоположение? Есть ли другие настройки, или есть какой-либо сигнал-чистый способ? (Без использования выбора места)

2) Если я покину текущее место, то я хочу выполнить какое-либо действие, так как я могу получить, что недавно покинул это место? как check-In/Out?

+0

Что V как вы получили? – KENdi

+0

@KENdi - Я получил список значений, которые находятся между 0 и 1, но максимальное значение не является моим текущим местом. Итак, как я могу получить точные значения правдоподобия? – iPatel

ответ

4

API Google требует, чтобы вы инициализировали 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 
+0

Это не поможет мне, потому что CLLocationManager не даст мне точной информации о моем текущем местоположении .. как название места, полный адрес, рейтинг и т. Д. – iPatel

+0

Вы можете передать местоположение, возвращенное iOS, в Google, чтобы получить информацию о местоположении (известное как обратное геокодирование). Расположение iOS даст вам широту и долготу, и вы можете указать это на 'https: //maps.googleapis.com/maps/api/geocode/json? Latlng = xx.xxxxxx, -yy.yyyyyy & key = YOUR_API_KEY'. Вот ссылка, чтобы узнать больше об этом: https://developers.google.com/maps/documentation/geocoding/start . В противном случае наибольшая вероятность - ваш лучший выбор. –

+0

Это не даст мне точную информацию о местоположении, такую ​​как google place, дайте мне точную информацию по списку проблем, только вероятность неверна, поэтому я не могу получить правильную информацию о местоположении. – iPatel

Смежные вопросы