Migrar para o Place Details (novo)

O SDK do Places para iOS oferece suporte aos Detalhes do lugar. Se você já conhece o SDK do Places para iOS, a nova versão dos detalhes do lugar faz as seguintes mudanças:

  • Usa um novo modelo de preços. Para informações de preços de todas as APIs, consulte Preços do SDK do Places para iOS (novo).

  • O mascaramento de campo é obrigatório. É necessário especificar quais campos você quer que sejam retornados na resposta. Não há uma lista padrão de campos retornados. Se você omitir essa lista, os métodos vão retornar um erro.

  • Para fazer uma solicitação, chame o novo método GMSPlacesClient fetchPlaceWithRequest:.

  • Transmita para a solicitação:

    • Uma instância da nova classe GMSFetchPlaceRequest que define todos os parâmetros de solicitação, como o ID do lugar e o token de sessão.

    • Um callback do tipo GMSPlaceResultCallback para processar a resposta.

  • A resposta contém uma instância de GMSPlace com detalhes sobre o lugar. Os valores na propriedade types da instância GMSPlace agora são definidos pela Tabela A e Tabela B.

  • A instância GMSPlace da resposta contém a nova propriedade reviews do tipo GMSPlaceReview. Quando o app mostra informações obtidas da instância GMSPlace, como fotos e avaliações, ele também precisa mostrar as atribuições necessárias.

    Para mais informações, consulte a documentação sobre atribuições.

  • A instância GMSPlace da resposta contém as seguintes funções de membro:

    • isOpen calcula se um lugar está aberto no horário especificado.

    • isOpenAtDate calcula se um lugar está aberto em uma determinada data.

    Essas funções só estão disponíveis quando você ativa o SDK do Places para iOS. Elas não estão disponíveis quando você ativa o SDK do Places para iOS (novo). Para mais informações, consulte Escolher a versão do SDK.

Exemplo de solicitação

Com o Place Details (New), você faz uma solicitação e transmite todos os parâmetros na instância GMSFetchPlaceRequest. Esse exemplo também usa uma máscara de campo para que a resposta inclua apenas o nome de exibição e o URL do site do local:

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);
  }
}];