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:
Uma instância do novo
GMSFetchPlaceRequest
que define todos os parâmetros de solicitação, como o ID de lugar e token de sessão.Um callback do tipo
GMSPlaceResultCallback
para lidar com a resposta.
A resposta contém um
GMSPlace
instância contendo detalhes sobre o local. Os valores notypes
da instânciaGMSPlace
agora são definidas pela Tabela A e Tabela B.A instância
GMSPlace
de resposta contém o novoreviews
propriedade do tipoGMSPlaceReview
. Quando o app exibe informações daGMSPlace
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); } }];