Migrar para o Place Details (novo)

O SDK do Places para iOS é compatível com a versão Place Details. Se você já conhece o SDK do Places para iOS, o nova versão do Place Details faz as seguintes alterações:

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

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

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

  • Passe para a solicitação:

  • A resposta contém um GMSPlace instância contendo detalhes sobre o local. Os valores no types da instância GMSPlace agora são definidas pela Tabela A e Tabela B.

  • A instância GMSPlace de resposta contém o novo reviews propriedade do tipo GMSPlaceReview. Quando o app exibe informações da GMSPlace como fotos e avaliações, o app também precisará exibir o e atribuições.

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

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

    • isOpen calcula se um lugar está aberto em um determinado horário.

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

    Essas funções só ficam disponíveis quando você ativa SDK do Places para iOS. Elas não ficam disponíveis quando você Ative 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 (novo), você faz uma solicitação e transmitir todos os parâmetros na instância de GMSFetchPlaceRequest; Isso O 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:

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