iOS용 Places SDK를 사용하면 기기가 현재 위치한 장소를 찾을 수 있습니다. 즉, 기기의 현재 보고된 위치에 있는 장소입니다. 장소의 예로는 지역 비즈니스, 관심 장소, 지리적 위치가 있습니다.
위치 정보 승인 요청
앱에서
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
를 사용하는 경우 앱은 위치 서비스를 사용하기 위한 권한을 요청해야 합니다. Info.plist
파일에 NSLocationWhenInUseUsageDescription
키를 추가하여 위치 서비스가 필요한 이유를 사용자에게 알리는 문자열을 정의합니다. 예를 들면 다음과 같습니다.
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
앱이 백그라운드에 있을 때 확인 대화상자를 트리거하지 않고
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
를 호출하려면 호출하기 전에 다음 단계를 따르세요.
NSLocationAlwaysUsageDescription
키를Info.plist
파일에 추가합니다.- 메서드를 호출하기 전에
CLLocationManager
의 인스턴스에서requestAlwaysAuthorization
를 호출합니다.
다음과 같이 CLLocationManager
에서 승인을 요청합니다.
locationManager.requestAlwaysAuthorization()
[self.locationManager requestAlwaysAuthorization];
현재 위치 가져오기
기기가 현재 위치한 지역 비즈니스 또는 기타 장소를 찾으려면 GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
를 호출합니다. 다음 매개변수를 포함합니다.
- 반환할 데이터 유형을 지정하는 하나 이상의
GMSPlaceField
이 매개변수를 생략하면 가능한 모든 필드가 반환되며 그에 따라 요금이 청구됩니다. 이는 장소 세부정보 요청에만 적용됩니다. - 결과를 처리하는 콜백 메서드입니다.
필드는 장소 검색 결과에 해당하며 기본, 연락처, 분위기 등 세 결제 카테고리로 분류됩니다. 기본 필드에는 기본 요율로 청구되며 추가 요금이 발생하지 않습니다. 연락처 및 분위기 필드에는 더 높은 요율로 청구됩니다. 장소 데이터 요청에 대해 요금이 청구되는 방법에 대한 자세한 내용은 사용량 및 결제를 참고하세요.
API는 지정된 콜백 메서드를 호출하여 GMSPlaceLikelihood
객체 배열을 반환합니다.
각 GMSPlaceLikelihood
객체는 장소를 나타냅니다. 장소별로 결과에는 장소가 올바른 장소일 가능성을 나타내는 표시가 포함됩니다. 값이 클수록 장소가 가장 일치할 가능성이 높습니다. 기기 위치에 해당하는 알려진 장소가 없는 경우 버퍼가 비어 있을 수 있습니다.
다음 코드 샘플은 기기가 있을 가능성이 가장 높은 장소 목록을 가져와 각 장소의 이름과 가능성을 로깅합니다.
// Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: { (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let placeLikelihoodList = placeLikelihoodList { for likelihood in placeLikelihoodList { let place = likelihood.place print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)") print("Current PlaceID \(String(describing: place.placeID))") } } })
// Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (likelihoods != nil) { for (GMSPlaceLikelihood *likelihood in likelihoods) { GMSPlace *place = likelihood.place; NSLog(@"Current place name: %@", place.name); NSLog(@"Place ID: %@", place.placeID); } } }];
유사도 값에 대한 유의 사항:
- 가능성은 단일 요청에 대해 반환된 장소 목록에서 장소가 가장 일치할 상대적 확률을 나타냅니다. 여러 요청 간에 가능성을 비교할 수는 없습니다.
- 유사도의 값은 0 ~ 1.0 사이입니다.
- 반환된
GMSPlaceLikelihood
객체 배열의 확률 합계는 항상 1.0 이하입니다. 합계가 1.0이 아닐 수도 있습니다.
예를 들어 올바른 장소가 장소 A일 확률이 55% 이고 장소 B일 확률이 35% 인 경우 확률 배열에는 두 개의 요소가 있습니다. 확률이 0.55인 장소 A와 확률이 0.35인 장소 B입니다.
앱에 저작자 표시
앱에서 GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
에서 가져온 정보를 표시하는 경우 저작자 표시도 함께 표시해야 합니다. 기여 분석에 대해 자세히 알아보세요.