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

Seletor de local

O widget de IU do seletor de local

O seletor de local é um widget de IU integrado simples e flexível que faz parte da Google Places API for iOS.

Apresentação do seletor de local

O GMSPlacePicker fornece uma caixa de diálogo na IU que exibe um mapa interativo e uma lista de locais próximos, inclusive locais correspondentes a endereços geográficos e empresas locais. Os usuários podem escolher um local para que o aplicativo recupere os detalhes desse local.

O seletor de local oferece as seguintes vantagens em comparação a desenvolver seu próprio widget de IU:

  1. A experiência do usuário é consistente com outros aplicativos que usam o seletor de local, incluindo aplicativos do Google e de terceiros. Isso significa que os usuários do seu aplicativo já sabem como interagir com o seletor de local.
  2. O mapa é integrado ao seletor de local.
  3. A acessibilidade é integrada.
  4. Você poupa tempo de desenvolvimento.

O seletor de local tem a funcionalidade de preenchimento automático, que exibe previsões de local com base na entrada de pesquisa do usuário. Essa funcionalidade está presente em todas as integrações do seletor de local, portanto, não é preciso fazer nada extra para ativar o preenchimento automático. Para obter mais informações sobre o preenchimento automático, consulte Preenchimento automático de locais.

Solicitar autorização de localização

Se seu aplicativo usa o seletor de local, é preciso solicitar permissão para usar serviços de localização. Primeiro, adicione uma ou ambas as chaves a seguir ao arquivo Info.plist para solicitar autorização para “quando estiver em uso” ou “sempre”:

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysUsageDescription

Para o seletor de local, a autorização para "quando estiver em uso" basta, mas a autorização "sempre" pode ser recomendável para outros recursos do seu aplicativo. Para cada chave, adicione uma string para informar ao usuário porque os serviços de localização são necessários. Por exemplo:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

Adicionar um seletor de local

O fragmento de código abaixo mostra como criar um GMSPlacePicker centralizado em Sydney e exibir detalhes do local selecionado.

Swift

// The code snippet below shows how to create and display a GMSPlacePickerViewController.
@IBAction func pickPlace(_ sender: UIButton) {
  let config = GMSPlacePickerConfig(viewport: nil)
  let placePicker = GMSPlacePickerViewController(config: config)

  present(placePicker, animated: true, completion: nil)
}

// To receive the results from the place picker 'self' will need to conform to
// GMSPlacePickerViewControllerDelegate and implement this code.
func placePicker(_ viewController: GMSPlacePickerViewController, didPick place: GMSPlace) {
  // Dismiss the place picker, as it cannot dismiss itself.
  viewController.dismiss(animated: true, completion: nil)

  print("Place name \(place.name)")
  print("Place address \(place.formattedAddress)")
  print("Place attributions \(place.attributions)")
}

func placePickerDidCancel(_ viewController: GMSPlacePickerViewController) {
  // Dismiss the place picker, as it cannot dismiss itself.
  viewController.dismiss(animated: true, completion: nil)

  print("No place selected")
}

Objective-C

// The code snippet below shows how to create and display a GMSPlacePickerViewController.
- (IBAction)pickPlace:(UIButton *)sender {
  GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil];
  GMSPlacePickerViewController *placePicker =
    [[GMSPlacePickerViewController alloc] initWithConfig:config];
  placePicker.delegate = self;

  [self presentViewController:placePicker animated:YES completion:nil];
}

// To receive the results from the place picker 'self' will need to conform to
// GMSPlacePickerViewControllerDelegate and implement this code.
- (void)placePicker:(GMSPlacePickerViewController *)viewController didPickPlace:(GMSPlace *)place {
  // Dismiss the place picker, as it cannot dismiss itself.
  [viewController dismissViewControllerAnimated:YES completion:nil];

  NSLog(@"Place name %@", place.name);
  NSLog(@"Place address %@", place.formattedAddress);
  NSLog(@"Place attributions %@", place.attributions.string);
}

- (void)placePickerDidCancel:(GMSPlacePickerViewController *)viewController {
  // Dismiss the place picker, as it cannot dismiss itself.
  [viewController dismissViewControllerAnimated:YES completion:nil];

  NSLog(@"No place selected");
}

Como mostra o exemplo de código acima, é possível inicializar o seletor de local com uma determinada configuração usando um objeto GMSPlacePickerConfig. No objeto de configuração, especifique uma viewport contendo um objeto GMSCoordinateBounds definindo a área retangular inicial que o mapa do seletor de local deve mostrar.

Chame GMSPlacePicker.pickPlaceWithCallback(_:) para exibir a caixa de diálogo do seletor de local que solicita que o usuário selecione um local.

Quando o usuário seleciona um local, o aplicativo recebe um retorno de chamada para o método fornecido em pickPlaceWithCallback(_:). O retorno de chamada é invocado com o local escolhido ou com um valor nulo se o usuário não selecionar um local.

Exibir atribuições no seu aplicativo

Quando o aplicativo exibe informações fornecidas pelo seletor de local, ele deve também exibir atribuições. Consulte a documentação sobre atribuições.

Enviar comentários sobre…