모든 준비를 마쳤습니다!

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

Google Places API for iOS 활성화

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

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

장소 추가

Google Places API for iOS를 사용하여 Google Places 데이터베이스에 장소를 추가할 수 있습니다. 새로 추가된 장소는 잠시 후에 자신의 앱에서 사용할 수 있고, Google Places 데이터베이스 및 Google 지도에 추가를 위해 중재 큐에 추가됩니다.

장소의 중재 절차 통과 가능성을 높이고 Google Places 데이터베이스에 추가되기 위해서는 추가 요청에 최대한 많은 정보를 포함해야 합니다. 특히 주소, 전화번호 및 웹사이트는 중요합니다.

  1. 장소 추가
  2. 여러 장소 ID 및 장소 ID 범위 처리

장소 추가

GMSUserAddedPlace를 생성한 다음 GMSPlacesClient addPlace:callback:에 전달합니다.

GMSUserAddedPlace 생성 시 다음 정보를 포함합니다.

  • 필수: 사업체, 관심 지점 또는 기타 장소의 전체 텍스트 name. 최대 255자까지 입력할 수 있습니다.
  • 필수: 사람이 읽을 수 있는 장소의 address. 장소가 올바른 형식이며 사람이 읽을 수 있는 형태로 제공되면 중재 절차를 통과하고 Google Places 데이터베이스에 포함될 가능성이 높습니다.
  • 필수: 장소의 위치를 지정하는 coordinate (CLLocationCoordinate2D) 객체.
  • 선택 항목: 장소의 phoneNumber. 국제 형식의 전화번호입니다. 국제 형식에는 국가 코드가 포함되며 플러스(+) 기호가 접두사로 붙습니다. 예를 들어, Google 미국 마운틴뷰 지사의 국제 전화번호는 +1 650-253-0000입니다. 장소에 올바른 형식의 전화번호가 있으면 중재 절차를 통과하고 Google Places 데이터베이스에 포함될 가능성이 높습니다. 참고: phoneNumberwebsite 또는 둘 다 제공해야 합니다.
  • 필수: 이 장소를 특징짓는 장소 유형 목록. 표 1 유형만 유효합니다.
  • 선택 항목: 사업체 홈페이지 등 이 장소의 공식 웹사이트 주소를 포함한 website URI. 장소에 올바른 형식의 웹사이트 주소가 있으면 중재 절차를 통과하고 Google Places 데이터베이스에 포함될 가능성이 높습니다. 참고: phoneNumberwebsite 또는 둘 다 제공해야 합니다.

또한 결과를 처리할 콜백 메서드를 포함합니다. API가 새로 생성된 장소에 대해 지정된 메서드를 호출하고 GMSPlace 객체에 전달합니다.

다음 코드 샘플은 호주 파이어몬트에 있는 'Google Shoes!'라는 장소를 추가합니다.

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

최종 GMSPlace 객체는 고유한 장소 ID를 가지며, 이 시점부터 앱에서 장소 세부정보를 검색하는 데 사용할 수 있습니다. 추가된 장소는 잠시 후에 앱에서 시작되는 get-current-place 요청의 결과와 앱이 표시하는 장소 선택기에서도 사용할 수 있습니다. 범위는 API 키를 생성하는 데 사용된 프로젝트 ID를 통해 판별됩니다.

새로 추가된 장소는 Google Places 데이터베이스에 추가를 위해 중재 큐에 입력됩니다. 중재 절차에서 승인되지 않은 장소는 제출한 앱에서 장소 ID를 통해 검색할 수 있지만, get-current-place 요청, API 선택기 또는 기타 API 메서드의 결과에 더 이상 나타나지 않습니다. 중재를 통과한 장소는 모든 앱과 Google 지도에 표시됩니다.

여러 장소 ID 및 장소 ID 범위 처리

각 장소 ID는 한 장소만 참조할 수 있지만, 단일 장소에서 2개 이상의 장소 ID를 가질 수 있습니다. 한 장소에 대해 여러 ID를 다루는 가장 일반적인 사례는 앱에 최초로 범위가 지정된 장소를 추가한 다음 Google 전체 범위를 수신하는 경우입니다.

장소를 추가하면 새 장소의 장소 ID를 즉시 수신합니다. 이 장소 ID의 범위는 본인의 앱에 한정됩니다. 그런 다음 장소가 중재 큐에 입력되고 Google Places 데이터베이스에 추가되기 위해 승인을 기다립니다. 승인되면 해당 장소는 모든 앱과 Google Maps에서 사용할 수 있는 새 장소 ID를 받게 됩니다.

장소 ID를 지정하여 장소를 요청하는 경우, 응답에서 항상 동일한 장소를 수신할 것으로 확신할 수 있습니다(장소가 계속 존재하는 경우).

하지만 응답에 요청한 것과 다른 장소 ID가 포함될 수 있습니다. 자세한 내용은 장소 ID 개요를 참조하세요.

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