Detalhes do lugar (novo)

Selecione a plataforma: Android iOS JavaScript Web Service

O SDK do Places para iOS (novo) fornece informações detalhadas ao seu app sobre lugares, incluindo o nome e o endereço, o localização especificada como coordenadas de latitude/longitude, o tipo de lugar (como como boate, pet shop, museu) e muito mais. Para acessar essas informações local específico, use o ID de local, um identificador estável que identifica identifica um lugar.

Conferir detalhes sobre o lugar

O GMSPlace contém informações sobre um local específico, incluindo todos os campos de dados mostrados em Campos de dados de lugar (novo). Receba um GMSPlace ao chamar GMSPlacesClient fetchPlaceWithRequest:, passando um objeto GMSFetchPlaceRequest e um método de callback do tipo GMSPlaceResultCallback

O objeto GMSFetchPlaceRequest especifica:

  • (Obrigatório) O ID de local, um identificador exclusivo para um local no Google Places e no Google Maps.
  • (Obrigatório) A lista de campos a serem retornados no objeto GMSPlace, também chamado de máscara de campo, conforme definido pela GMSPlaceProperty Se você não especificar pelo menos um campo na lista ou se omitir na lista de campos, a chamada retornará um erro.
  • (Opcional) O código da região usado para formatar a resposta.
  • (Opcional) O token de sessão usado para encerrar uma sessão de Autocomplete (novo).

Fazer uma solicitação do Place Details

Este exemplo recebe um local por ID, passando os seguintes parâmetros:

  • O ID de lugar de ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Uma lista de campos especificando para retornar o nome do lugar e o URL do site.
  • Uma GMSPlaceResultCallback para lidar com o resultado.

A API invoca o método de retorno de chamada especificado, transmitindo um GMSPlace objeto. Se o local não for encontrado, o objeto de local é nulo.

Swift

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

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

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

client.fetchPlace(with: 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 *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties 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);
  }
}];

SDK do Places Swift para iOS (pré-lançamento)

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Resposta do Place Details

Place Details retorna um Objeto GMSPlace que contém detalhes sobre o lugar. Somente os campos especificados na lista de campos são preenchidos no objeto GMSPlace.

Receber status aberto

O objeto GMSPlacesClient contém uma função de membro chamada isOpenWithRequest (isOpenRequest no Swift e isPlaceOpenRequest no GooglePlacesSwift) que retorna uma resposta indicando se o lugar está aberto no momento, com base no horário especificado na chamada.

Esse método usa um único argumento do tipo GMSPlaceIsOpenWithRequest que contém:

  • Um objeto GMSPlace ou uma string que especifica um ID de lugar. Para mais informações sobre como criar o objeto de lugar com os campos necessários, consulte Detalhes do lugar.
  • Um objeto NSDate (Obj-C) ou Date (Swift) opcional que especifica o horário da verificação. Se nenhum horário for especificado, o padrão será agora.
  • Um método GMSPlaceOpenStatusResponseCallback para gerenciar a resposta.
  • &gt;
.

O método GMSPlaceIsOpenWithRequest exige que os seguintes campos sejam definidos no objeto GMSPlace:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Se esses campos não forem fornecidos no objeto Place ou se você transmitir um ID de lugar, o método vai usar GMSPlacesClient GMSFetchPlaceRequest: para buscá-los.

isOpenWithRequest resposta

isOpenWithRequest retorna um objeto GMSPlaceIsOpenResponse contendo um valor booleano chamado status, que indica se a empresa está aberta, fechada ou se o status é desconhecido.

Idioma Valor se aberto Valor se fechado Valor se o status for desconhecido
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (pré-lançamento) true false nil

Faturamento de isOpenWithRequest

  • Os campos GMSPlacePropertyUTCOffsetMinutes e GMSPlacePropertyBusinessStatus são cobrados na SKU de dados básicos. O restante do horário de funcionamento é cobrado com base na SKU do Place Details (Advanced).
  • Se o objeto GMSPlace tiver esses campos de uma solicitação anterior, não vai haver outra cobrança.

Exemplo: fazer uma solicitação GMSPlaceIsOpenWithRequest

O exemplo a seguir mostra como inicializar um GMSPlaceIsOpenWithRequest em um objeto GMSPlace.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

Parâmetros obrigatórios

Use o objeto GMSFetchPlaceRequest para especificar os parâmetros necessários.

ID do lugar

O ID de lugar usado no SDK do Places para iOS é o O mesmo identificador usado na API Places e no SDK do Places para Android e outras APIs do Google. Cada ID de local pode se referir a apenas um local, mas um único local pode ter mais mais de um ID de lugar.

Algumas circunstâncias podem fazer com que um local receba um novo ID de local. Por exemplo, isso pode acontecer se uma empresa se mudar para outra localidade.

Ao solicitar um local especificando um ID de local, você pode ter a certeza de que você sempre receberá o mesmo lugar na resposta (se o lugar ainda existe). Observe, no entanto, que a resposta pode conter um ID de local que é diferente daquele em sua solicitação.

Lista de campos

Ao solicitar detalhes do lugar, você deve especificar os dados que retornar no objeto GMSPlace do lugar como uma máscara de campo. Definir a máscara de campo passar uma matriz de valores de GMSPlaceProperty ao objeto GMSFetchPlaceRequest. O mascaramento de campo é uma prática recomendada de design para garantir que você não solicite dados desnecessários, que ajuda a evitar tempo de processamento e cobranças de faturamento desnecessários.

Especifique um ou mais dos seguintes campos:

  • Os campos a seguir acionam a SKU do Place Details (somente ID):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Os campos a seguir acionam a SKU do Place Details (somente local):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Os campos a seguir acionam a SKU do Place Details (Basic):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Os campos a seguir acionam a SKU do Place Details (Advanced):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Os campos a seguir acionam a SKU do Place Details (Preferencial):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

O exemplo a seguir passa uma lista de dois valores de campo para especificar que o objeto GMSPlace retornado por uma solicitação contém o Campos name e placeID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

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

SDK do Places Swift para iOS (pré-lançamento)

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Parâmetros opcionais

Use o objeto GMSFetchPlaceRequest para especificar os parâmetros opcionais.

regionCode

O código da região usado para formatar a resposta, especificado como um de dois caracteres. Esse parâmetro também pode ter um efeito de viés nos resultados da pesquisa. Não há valor padrão.

Se o nome do país do campo de endereço na resposta corresponder ao código regional, o código do país é omitido do endereço.

A maioria dos códigos CLDR é idêntica aos códigos ISO 3166-1, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), enquanto o código ISO 3166-1 é "gb" (tecnicamente para os "Reino Unido da Grã-Bretanha e Irlanda do Norte"). O parâmetro pode afetar os resultados com base na legislação aplicável.

sessionToken

Os tokens de sessão são strings geradas pelo usuário que acompanham o preenchimento automático (Novo) chamadas como "sessões". O Autocomplete (novo) usa tokens de sessão para agrupar as fases de consulta e seleção de local de uma pesquisa de preenchimento automático do usuário em uma sessão discreta para fins de faturamento. Os tokens de sessão são transmitidos para o Place Details (novo) chamadas que seguem as chamadas de preenchimento automático (novo). Para mais informações, consulte Tokens de sessão.

Exibir atribuições no seu aplicativo

Quando o app exibe informações recebidas de GMSPlacesClient, como fotos e avaliações, o app também precisará exibir as atribuições necessárias.

Por exemplo, a propriedade reviews do objeto GMSPlacesClient. contém uma matriz de até cinco GMSPlaceReview objetos. Cada objeto GMSPlaceReview pode conter atribuições e atribuições de autor. Se você exibir a avaliação no seu app, também deverá mostrar as atribuições ou os autores atribuição.

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