장소 세부정보로 마이그레이션 (신규)

iOS용 Places SDK는 기존 장소 세부정보를 지원합니다. 기존 iOS용 Places SDK에 익숙한 경우 새 버전의 장소 세부정보에서 다음과 같은 변경사항이 적용됩니다.

  • 새로운 가격 책정 모델을 사용합니다. 모든 API의 가격 정보는 iOS용 Places SDK 가격 (신규)를 참고하세요.

  • 필드 마스킹이 필요합니다. 응답에서 반환할 필드를 지정해야 합니다. 반환되는 필드의 기본 목록은 없습니다. 이 목록을 생략하면 메서드에서 오류를 반환합니다.

  • 요청하려면 새 GMSPlacesClient fetchPlaceWithRequest: 메서드를 호출합니다.

  • 요청에 전달합니다.

    • 장소 ID 및 세션 토큰과 같은 모든 요청 매개변수를 정의하는 새 GMSFetchPlaceRequest 클래스의 인스턴스입니다.

    • 응답을 처리하는 GMSPlaceResultCallback 유형의 콜백입니다.

  • 응답에는 장소에 관한 세부정보가 포함된 GMSPlace 인스턴스가 포함됩니다. 이제 GMSPlace 인스턴스의 types 속성 값이 표 A표 B에 의해 정의됩니다.

  • 응답 GMSPlace 인스턴스에는 GMSPlaceReview 유형의 새 reviews 속성이 포함되어 있습니다. 앱이 GMSPlace 인스턴스에서 가져온 정보(예: 사진, 리뷰)를 표시하는 경우 필요한 저작자 표시도 표시해야 합니다.

    자세한 내용은 저작자 표시 문서를 참고하세요.

  • 응답 GMSPlace 인스턴스에는 다음과 같은 구성원 함수가 포함됩니다.

    • isOpen는 지정된 시간에 장소가 영업 중인지 계산합니다.

    • isOpenAtDate는 특정 날짜에 장소가 영업 중인지 여부를 계산합니다.

    이 함수는 iOS용 Places SDK를 사용 설정한 경우에만 사용할 수 있습니다. iOS용 Places SDK (신규)를 사용 설정하면 사용할 수 없습니다. 자세한 내용은 SDK 버전 선택하기를 참고하세요.

요청 예시

Place Details (신규)를 사용하면 요청을 하고 GMSFetchPlaceRequest 인스턴스의 모든 매개변수를 전달합니다. 이 예에서는 필드 마스크도 사용하므로 응답에 장소의 표시 이름과 웹사이트 URL만 포함됩니다.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields, sessionToken: nil)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];