Eso es todo.

Para comenzar a desarrollar, consulta nuestra documentación para desarrolladores.

Activar la Google Places API for iOS

Para que puedas comenzar, te proporcionaremos orientación en la consola para desarrolladores de Google a fin de que hagas primero algunas acciones:

  1. Crear o seleccionar un proyecto
  2. Activar la Google Places API for iOS
  3. Crear claves correspondientes
Continuar

Seleccionador de sitios

El widget de la IU del seleccionador de sitios

El seleccionador de sitios es un widget simple, integrado y flexible de la IU, que forma parte de Google Places API for iOS.

Presentación del seleccionador de sitios

GMSPlacePicker proporciona un cuadro de diálogo de IU que muestra un mapa interactivo y una lista de sitios cercanos, incluidos los sitios que corresponden a direcciones geográficas y negocios locales. Los usuarios pueden elegir un sitio y, a continuación, tu aplicación puede recuperar los detalles del sitio seleccionado.

El seleccionador de sitios proporciona las siguientes ventajas en comparación con el desarrollo de tu propio widget de la IU:

  1. La experiencia del usuario es consistente con otras aplicaciones que usan el seleccionador de sitios, incluidas las aplicaciones de Google y de terceros. Esto significa que los usuarios de tu aplicación ya saben cómo interactuar con el seleccionador de sitios.
  2. El mapa está integrado al seleccionador de sitios.
  3. La accesibilidad también está integrada.
  4. Permite ahorrar tiempo de desarrollo.

El seleccionador de sitios ofrece la funcionalidad de autocompletado, que muestra predicciones de sitios según las entradas de búsqueda del usuario. Esta funcionalidad está presente en todas las integraciones del seleccionador de sitios, por lo cual no es necesario que hagas nada más para habilitar el autocompletado. Para obtener más información sobre el autocompletado, consulta Autocompletado de sitios.

Solicitar una autorización de ubicación

Si en tu aplicación se usa el seleccionador de sitios, debes solicitar permiso para usar servicios de ubicación. Primero agrega una de las siguientes claves, o las dos, a tu archivo Info.plist para solicitar autorización “when in use” (durante el uso) o “always” (siempre):

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysUsageDescription

Para el seleccionador de sitios, es suficiente solicitar la autorización “durante el uso”, pero te recomendamos solicitar la autorización “siempre” para otras funcionalidades de tu app. Para cada clave, agrega una cadena en la que se comunique al usuario la razón por la que necesitas los servicios de comunicación. Por ejemplo:

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

Agregar un seleccionador de sitios

En el fragmento de código siguiente se muestra la manera de crear un GMSPlacePicker centrado en Sydney, y de obtener detalles de salida del sitio seleccionado.

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 se muestra en el ejemplo de código anterior, puedes inicializar el seleccionador de sitios con una configuración determinada usando un objeto GMSPlacePickerConfig. En el objeto de configuración, especifica un viewport que contenga un objeto GMSCoordinateBounds en el cual se defina el área rectangular inicial que deba mostrarse en el mapa del seleccionador de sitios.

Llama a GMSPlacePicker.pickPlaceWithCallback(_:) para mostrar el diálogo del seleccionador de sitios que solicita al usuario seleccionar un sitio.

Cuando el usuario selecciona un sitio, tu app recibe un callback al método proporcionado en pickPlaceWithCallback(_:). El callback se invoca con el sitio seleccionado, o con nil si el usuario no selecciona un sitio.

Mostrar atribuciones en tu aplicación

Cuando en tu aplicación se muestra información obtenida mediante el seleccionador de sitios, también deben exhibirse atribuciones. Consulta la documentación sobre las atribuciones.

Enviar comentarios sobre...