Place Details

Selecione a plataforma: Android iOS JavaScript Serviço da Web

O SDK do Places para iOS fornece ao seu aplicativo informações detalhadas sobre lugares, incluindo o nome e o endereço do lugar, a localização geográfica especificada como coordenadas de latitude/longitude, o tipo de lugar (como casa noturna, pet shop, museu) e muito mais. Para acessar essas informações de um lugar específico, você pode usar o código do lugar, um identificador estável que identifica exclusivamente um lugar.

Detalhes do lugar

A classe GMSPlace fornece informações sobre um lugar específico. É possível pegar um objeto GMSPlace das seguintes maneiras:

Campos do lugar

Ao solicitar um lugar, você precisa especificar quais tipos de dados retornar. Para fazer isso, transmita um GMSPlaceField, especificando os tipos de dados a serem retornados. Essa é uma consideração importante, já que isso afetará o custo de cada solicitação. Como os resultados de dados de lugar não podem ficar vazios, somente resultados de lugar com dados são retornados. Por exemplo, se um local solicitado não tiver fotos, o campo photos não estará presente no resultado. É possível especificar um ou mais dos seguintes campos:

  • GMSPlaceFieldName
  • GMSPlaceFieldPlaceID
  • GMSPlaceFieldPlusCode
  • GMSPlaceFieldBusinessStatus
  • GMSPlaceFieldCoordinate
  • GMSPlaceFieldOpeningHours
  • GMSPlaceFieldPhoneNumber
  • GMSPlaceFieldFormattedAddress
  • GMSPlaceFieldRating
  • GMSPlaceFieldPriceLevel
  • GMSPlaceFieldTypes
  • GMSPlaceFieldWebsite
  • GMSPlaceFieldViewport
  • GMSPlaceFieldAddressComponents
  • GMSPlaceFieldPhotos
  • GMSPlaceFieldUserRatingsTotal
  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor
  • GMSPlaceFieldUTCOffsetMinutes
  • GMSPlaceFieldAll

Saiba mais sobre os campos de lugar. Para mais informações sobre como as solicitações de dados de lugar são faturadas, consulte Uso e faturamento.

A classe GMSPlace pode conter os seguintes dados de lugar:

  • name: o nome do lugar.
  • placeID: o identificador textual do lugar. Leia mais sobre IDs de lugar no restante desta página.
  • coordinate: a localização geográfica do lugar, especificada como coordenadas de latitude e longitude.
  • businessStatus: o status operacional do lugar, se for uma empresa. Ele pode conter um dos seguintes valores: GMSBusinessStatusOperational, GMSBusinessStatusClosedTemporarily, GMSBusinessStatusClosedPermanently, GMSBusinessStatusUnknown.
  • phoneNumber: o número de telefone do lugar, no formato internacional.
  • formattedAddress: o endereço legível do local.

    Muitas vezes, esse endereço é equivalente ao endereço postal. Alguns países, como o Reino Unido, não permitem a distribuição de endereços postais verdadeiros devido a restrições de licenciamento.

    O endereço formatado é composto de maneira lógica por um ou mais componentes de endereço. Por exemplo, o endereço "111 8th Avenue, New York, NY" consiste nos seguintes componentes: "111" (o número da rua), "8th Avenue" (o trajeto), "New York" (a cidade) e "NY" (estado dos EUA).

    Não analise o endereço formatado de maneira programática. Em vez disso, use os componentes de endereço individuais, que a resposta da API inclui, além do campo de endereço formatado.

  • rating: uma classificação agregada do lugar, retornada como um ponto flutuante com valores que variam de 1,0 a 5,0, com base nas avaliações agregadas de usuários.
  • openingHours: o horário de funcionamento do lugar (conforme representado por GMSOpeningHours). Chame GMSOpeningHours.weekdayText para ver uma lista de strings localizadas do horário de funcionamento diário da semana. Chame GMSOpeningHours.Periods para retornar uma lista de GMSPeriods com informações mais detalhadas equivalentes aos dados fornecidos por weekdayText. Observação: se um lugar estiver sempre aberto, o período será representado como domingo à meia-noite e o closeEvent será nulo.
  • plusCode: a representação do código Plus do local do lugar.
  • priceLevel: o nível de preço desse lugar, retornado como um número inteiro com valores que variam de 0 (mais barato) a 4 (mais caro).
  • types: uma lista de tipos de lugar que caracterizam esse lugar. Essa matriz pode conter vários valores ou pode estar vazia. Novos valores podem ser introduzidos sem aviso prévio. Veja a lista de tipos compatíveis.
  • website: o URI do site do local, se conhecido. Esse é o site mantido pela empresa ou outra entidade associada ao lugar.
  • attributions: uma NSAttributedString contendo as atribuições que você precisa exibir ao usuário se o app usar detalhes do lugar recuperados do SDK do Places para iOS. Para ver detalhes sobre como recuperar e exibir atribuições, consulte o guia de atribuições.
  • addressComponents: uma matriz de objetos GMSAddressComponent que representam componentes do endereço de um lugar. Esses componentes são fornecidos com a finalidade de extrair informações estruturadas sobre um endereço de lugar, por exemplo, encontrar a cidade em que um lugar está localizado. Não use esses componentes para formatar o endereço. Em vez disso, use a propriedade formattedAddress, que fornece um endereço formatado localizado.

    Observe os seguintes fatos sobre a matriz addressComponents:

    • A matriz de componentes de endereço pode conter mais componentes do que o formattedAddress.
    • A matriz não inclui necessariamente todas as entidades políticas que contêm um endereço, além daquelas incluídas no formattedAddress.
    • Não há garantia de que o formato da resposta permanecerá o mesmo entre as solicitações. Especificamente, o número de addressComponents varia de acordo com o endereço solicitado e pode mudar com o tempo para o mesmo endereço. Um componente pode mudar a posição na matriz. O tipo do componente pode mudar. Um componente específico pode estar ausente em uma resposta posterior.
  • userRatingsTotal: representa quantas avaliações compõem a classificação do lugar.
  • GMSPlaceFieldIconImageURL: o URL de um ícone que representa o tipo de lugar (formato PNG).
  • GMSPlaceFieldIconBackgroundColor: a cor de fundo do ícone do tipo de lugar.
  • UTCOffsetMinutes: a diferença de fuso horário do lugar, em minutos.

A classe GMSPlace contém as seguintes funções de membros:

  • isOpen calcula se um lugar está aberto no momento especificado, com base em openingHours e UTCOffsetMinutes e na data e hora atuais.
  • isOpenAtDate calcula se um lugar está aberto em uma determinada data, com base em openingHours e UTCOffsetMinutes, e na data e hora atuais.
  • Ao usar essas funções para saber os horários de abertura e/ou datas, a solicitação fetchPlaceFromPlaceID: ou findPlaceLikelihoodsFromUserLocationWithPlaceFields: original precisa especificar os campos GMSPlaceFieldOpeningHours e GMSPlaceFieldUTCOffsetMinutes. Se um desses campos estiver ausente, o objeto GMSPlace resultante não conterá horários ou datas de abertura e a chamada retornará GMSPlaceOpenStatusUnknown. Para garantir resultados precisos, solicite os campos GMSPlaceFieldBusinessStatus e GMSPlaceFieldUTCOffsetMinutes na solicitação de lugar original. Se não for solicitado, presume-se que a empresa está funcionando.

    Veja este vídeo para saber como usar o isOpen com Place Details.

Obter local por ID

Um ID de local é um identificador textual que identifica um local de forma exclusiva. No SDK do Places para iOS, é possível recuperar o ID de um lugar usando um objeto GMSPlace. Você pode armazenar o ID de lugar e usá-lo para recuperar o objeto GMSPlace novamente mais tarde.

Para receber um lugar por ID, chame GMSPlacesClient fetchPlaceFromPlaceID:, enviando os seguintes parâmetros:

  • Uma string que contém um ID de lugar.
  • Um ou mais GMSPlaceFields, especificando os tipos de dados a serem retornados.
  • Um token de sessão se a chamada for feita para concluir uma consulta de preenchimento automático. Caso contrário, transmita o valor nulo.
  • Uma GMSPlaceResultCallback para processar o resultado.

A API invoca o método de callback especificado, transmitindo um objeto GMSPlace. 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 fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeId, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeId = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeId placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

Exibir atribuições no seu aplicativo

Quando seu app exibe informações coletadas de GMSPlacesClient lookUpPlaceID:callback:, ele também precisa exibir atribuições. Consulte a documentação sobre atribuições.

Nossos Termos de Serviço

Só use os dados do Google
com o Google Maps

Só use os dados do Google com um mapa do Google. Você pode exibir dados do Google e de outros provedores em um mapa do Google, mas não exibir dados do Google em um mapa que não seja do Google.

Saiba mais

Mais informações sobre IDs de local

O ID de lugar usado no SDK do Places para iOS é o mesmo identificador usado na API Places, no SDK do Places para Android e em outras APIs do Google.

Cada ID de lugar pode se referir a apenas um lugar, mas um único local pode ter mais de um ID de lugar.

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

Ao solicitar um lugar especificando um ID de lugar, você tem a certeza de que sempre receberá o mesmo local na resposta (se o local ainda existir). No entanto, a resposta pode conter um ID de lugar diferente daquele na solicitação.

Para mais informações, consulte a visão geral do ID de lugar.