O SDK do Places para iOS é compatível com Detalhes do lugar (legado). Se você conhece o SDK do Places para iOS (legado), o Place Details (New) 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
GMSFetchPlaceRequestque define todos os parâmetros de solicitação, como o ID do lugar e o token de sessão.Um callback do tipo
GMSPlaceResultCallbackpara processar a resposta.
A resposta contém uma instância
GMSPlacecom detalhes sobre o lugar. Os valores na propriedadetypesda instânciaGMSPlaceagora são definidos pela Tabela A e pela Tabela B.A instância de resposta
GMSPlacecontém a nova propriedadereviewsdo tipoGMSPlaceReview. Quando o app mostra informações obtidas da instânciaGMSPlace, 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 de resposta
GMSPlacecontém as seguintes funções de membro:isOpencalcula se um lugar está aberto no horário especificado.isOpenAtDatecalcula 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. Eles não estão disponíveis quando você ativa o SDK do Places para iOS (novo). Para mais informações, consulte Escolher sua versão do SDK.
Exemplo de solicitação
Com o Place Details (novo), você faz uma solicitação e transmite todos os parâmetros na instância GMSFetchPlaceRequest. Este
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 lugar:
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); } }];