Pronto!

Para começar a desenvolver, acesse nossa documentação do desenvolvedor.

Ativar a API do Google Places para iOS

Para começar, orientaremos você pelo Console de Desenvolvedores do Google para realizar algumas atividades:

  1. Criar ou selecionar um projeto
  2. Ativar a API do Google Places para iOS
  3. Criar chaves apropriadas
Continuar

Place Add

Você pode usar a Google Places API for iOS para adicionar um local no banco de dados do Places do Google. O local recém-adicionado fica disponível em seu aplicativo por pouco tempo e é adicionado a uma fila de moderação para possível adição ao banco de dados do Places do Google e no Google Maps.

Para que seja mais provável que o local seja aprovado pelo processo de moderação e adicionado ao banco de dados do Google Places, a solicitação de adição deve incluir o máximo de informações possível. O endereço, o número do telefone e o site são particularmente importantes.

  1. Adicionar um local
  2. Processar vários IDs de local e escopo de ID de local

Adicionar um local

Crie um GMSUserAddedPlace e passe-o para GMSPlacesClient addPlace:callback:.

Inclua as seguintes informações ao criar o GMSUserAddedPlace:

  • Obrigatório: o name completo textual da empresa, do ponto de interesse ou de outro local. Limitado a 255 caracteres.
  • Obrigatório: o address do lugar legível. Se um local tiver um endereço bem formatado e legível, a chance de ele ser aprovado no processo de moderação para inclusão no banco de dados do Google Places será maior.
  • Obrigatório: um objeto coordinate (CLLocationCoordinate2D) especificando a localização do local.
  • Opcional: o phoneNumber do local. Esse é o número do telefone em formato internacional. O formato internacional inclui o código do país e é prefixado pelo sinal de mais (+). Por exemplo, o número de telefone internacional do escritório do Google em Mountain View, EUA, é +1 650-253-0000. Se um local tiver um número de telefone formatado corretamente, a chance de ele ser aprovado no processo de moderação para inclusão no banco de dados do Google Places será maior. Observação: forneça o phoneNumber, o website ou ambos.
  • Obrigatório: uma lista de tipos de local que caracterizem esse local. Somente os tipos da tabela 1 são válidos.
  • Opcional: um URI de website que contém o endereço do site de autoridade do local, como a página inicial de uma empresa. Se um local tiver um endereço de site formatado corretamente, a probabilidade de ele ser aprovado no processo de moderação para inclusão no banco de dados do Google Places será maior. Observação: forneça o phoneNumber, o website ou ambos.

Inclua também um método de retorno de chamada para tratar os resultados. A API invoca o método de retorno de chamada especificado, passando o objeto GMSPlace para o local recém-criado.

O exemplo de código a seguir adiciona um local chamado "Google Shoes!" em Pyrmont, Austrália.

Swift

let userAddedPlace = GMSUserAddedPlace()
userAddedPlace.name = "Google Shoes!"
userAddedPlace.address = "48 Pirrama Road, Pyrmont, NSW 2009, Australia"
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750)
userAddedPlace.phoneNumber = "(02) 9374 4000"
userAddedPlace.website = "http://www.google.com.au/"
userAddedPlace.types = ["shoe_store"]
placesClient.add(userAddedPlace, callback: { (place, error) -> Void in
  if let error = error {
    print("Add Place error: \(error.localizedDescription)")
    return
  }

  if let place = place {
    print("Added place with placeID \(place.placeID)")
    print("Added Place name \(place.name)")
    print("Added Place address \(place.formattedAddress)")
  }
})

Objective-C

GMSUserAddedPlace *userAddedPlace = [[GMSUserAddedPlace alloc] init];
userAddedPlace.name = @"Google Shoes!";
userAddedPlace.address = @"48 Pirrama Road, Pyrmont, NSW 2009, Australia";
userAddedPlace.coordinate = CLLocationCoordinate2DMake(-33.8669710, 151.1958750);
userAddedPlace.phoneNumber = @"(02) 9374 4000";
userAddedPlace.website = @"http://www.google.com.au/";
userAddedPlace.types = @[@"shoe_store"];

[_placesClient addPlace:userAddedPlace callback:^(GMSPlace *place, NSError *error) {
  if (error != nil) {
    NSLog(@"User Added Place error %@", [error localizedDescription]);
    return;
  }

  NSLog(@"Added place with placeID %@", place.placeID);
  NSLog(@"Added Place name %@", place.name);
  NSLog(@"Added Place address %@", place.formattedAddress);
}];

O objeto GMSPlace resultante tem um ID de local exclusivo, que seu aplicativo pode usar daquele ponto em diante para recuperar detalhes do local. Locais adicionados também são disponibilizados por algum tempo nos resultados das solicitações get-current-place iniciadas pelo aplicativo e em um seletor de local exibido pelo aplicativo. A delimitação é determinada pelo ID de projeto usado para gerar a sua chave de API.

Locais recém-adicionados entram em uma fila de moderação para serem considerados para adição no banco de dados do Google Places. Locais que não são aceitos pelo processo de moderação continuarão a ser recuperáveis com o ID de local no aplicativo que os enviou, mas não aparecerão mais nos resultados de solicitações get-current-place, no seletor da API ou em outro método dela. Locais aprovados pela moderação estarão visíveis em todos os aplicativos e no Google Maps.

Processar vários IDs de local e escopo de ID de local

Cada ID de local só pode referenciar um local, mas um único local pode ter mais de um ID de local. O caso mais comum de gerenciamento de diversos IDs para um mesmo local é ao adicionar um local inicialmente limitado ao seu aplicativo, que depois recebe uma abrangência do nível do Google.

Quando você adiciona um local, recebe imediatamente um ID de local para o novo local. O ID do local tem escopo apenas em seu aplicativo. Em seguida, o local entra em uma fila de moderação, aguardando aprovação para adição no banco de dados do Google Places. Se aprovado, o local receberá um novo ID de local, disponível para todos os aplicativos e no Google Maps.

Ao solicitar um local especificando um local de ID, você tem a certeza de que sempre receberá o mesmo local na resposta (se o local ainda existir).

Observe, no entanto, que a resposta poderá conter um ID de local diferente daquele em sua solicitação. Para obter mais informações, consulte a visão geral de IDs de local.

Enviar comentários sobre…