모든 준비를 마쳤습니다!

개발을 시작하려면 개발자 문서로 이동하세요.

Google Places API for iOS 활성화

개발을 시작하기 위해 Google Developers Console에서 우선적으로 해야 할 일을 몇 가지 소개하겠습니다.

  1. 프로젝트 생성 또는 선택
  2. Google Places API for iOS 활성화
  3. 적합한 키 생성
계속

장소 선택기

장소 선택기 UI 위젯

장소 선택기는 간단하지만 유용한 내장 UI 위젯으로, Google Places API for iOS의 일부입니다.

장소 선택기 소개

GMSPlacePicker는 지리적 주소와 현지 사업체에 해당하는 장소를 포함한, 대화형 지도와 주변 장소 목록을 표시하는 UI 대화상자를 제공합니다. 사용자가 장소를 선택하면, 앱에서 선택한 장소의 세부정보를 검색할 수 있습니다.

장소 선택기는 UI 위젯을 직접 개발하는 것에 비해 다음과 같은 이점을 제공합니다.

  1. Google 앱 및 타사 앱을 포함한, 장소 선택기를 사용하는 다른 앱과 사용자 경험의 일관성이 유지됩니다. 즉, 앱의 사용자가 장소 선택기와 소통하는 방법을 이미 알고 있습니다.
  2. 지도가 장소 선택기에 통합됩니다.
  3. 필요한 옵션이 기본적으로 제공됩니다.
  4. 따라서 개발 시간을 줄일 수 있습니다.

장소 선택기는 사용자 검색 입력을 기반으로 장소 예상 검색어를 표시하는 자동완성 기능을 제공합니다. 이 기능은 모든 장소 선택기 통합에 있으므로 자동완성을 활성화하기 위해 추가 작업을 수행할 필요가 없습니다. 자동완성에 대한 자세한 내용은 장소 자동완성을 참조하세요.

위치 승인 요청

앱이 장소 선택기를 사용하는 경우 위치 서비스 사용 권한을 요청해야 합니다. 먼저 Info.plist 파일에 다음 키 중 하나 또는 모두를 추가하고 'when in use' 또는 'always' 승인을 요청합니다.

  • NSLocationWhenInUseUsageDescription
  • NSLocationAlwaysUsageDescription

장소 선택기는 'when in use' 승인을 요청하는 것으로 충분하지만 앱의 다른 기능을 사용하려면 'always' 승인 요청이 필요합니다. 각 키에서, 위치 서비스가 필요한 이유를 사용자에게 알려주는 문자열을 추가합니다. 예:

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

장소 선택기 추가

아래 코드 스니펫은 Sydney 중심에 GMSPlacePicker를 생성하고 선택한 장소의 세부정보를 출력합니다.

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");
}

위의 코드 샘플에 나오는 것처럼 GMSPlacePickerConfig 객체를 사용하여 주어진 구성으로 장소 선택기를 초기화할 수 있습니다. 구성 객체에서, 장소 선택기의 지도가 표시해야 하는 최초 사각형 영역을 정의하는 GMSCoordinateBounds 객체가 포함된 viewport를 지정합니다.

GMSPlacePicker.pickPlaceWithCallback(_:)을 호출하면 사용자에게 장소를 선택하도록 안내하는 장소 선택기 대화상자가 표시됩니다.

사용자가 장소를 선택하면 앱이 pickPlaceWithCallback(_:)에서 제공된 메서드에 대한 콜백을 수신합니다. 콜백은 선택된 장소로 호출되거나, 사용자가 장소를 선택하지 않으면 nil로 호출됩니다.

앱에 특성 표시

앱이 장소 선택기를 통해 획득한 정보를 표시하는 경우 특성도 표시해야 합니다. 특성에 대한 문서를 참조하세요.

다음에 대한 의견 보내기...