iOS용 Places SDK 정책

이 문서에는 해당 API에 포함된 Place Autocomplete 서비스를 비롯하여 iOS용 Places SDK로 개발된 모든 애플리케이션에 해당하는 요구사항이 나열되어 있습니다. Google 지도 개발자를 위한 더 일반적인 정보는 Google Maps Platform 서비스 약관을 참고하세요.

이용약관 및 개인정보처리방침 제공

iOS용 Places SDK 애플리케이션을 개발하는 경우 Google과의 계약에 기술된 가이드라인을 충족하는 이용약관개인정보처리방침을 애플리케이션에 제공해야 합니다.

  • 이용약관개인정보처리방침은 공개되어야 합니다.
  • 애플리케이션 사용 시 Google 서비스 약관의 적용을 받게 된다는 사실을 애플리케이션 이용약관에 명시해야 합니다.
  • 개인정보처리방침에서 Google Maps API를 사용 중이라는 사실을 사용자에게 알리고 참조 자료로 Google 개인정보처리방침을 포함해야 합니다.

이용약관개인정보처리방침을 공개하는 권장 위치는 사용 중인 애플리케이션의 플랫폼에 따라 다릅니다.

모바일 애플리케이션

모바일 앱을 개발하는 경우, 애플리케이션 스토어의 애플리케이션 다운로드 페이지와 애플리케이션의 설정 메뉴에서 이용약관개인정보처리방침으로 연결되는 링크를 제공하는 것이 좋습니다.

웹 애플리케이션

웹 애플리케이션을 개발하는 경우, 웹사이트의 바닥글에서 이용약관개인정보처리방침으로 연결되는 링크를 제공하는 것이 좋습니다.

콘텐츠 프리패치, 캐싱 또는 저장

iOS용 Places SDK를 사용하는 애플리케이션에는 귀하와 Google 간의 계약 약관이 적용됩니다. 계약의 약관에 따라, 약관에서 명시된 제한적인 조건을 제외하고는 어떤 콘텐츠도 프리패치, 색인 생성, 저장 또는 캐싱할 수 없습니다.

장소를 고유하게 식별하는 데 사용되는 장소 ID캐싱 제한에서 제외됩니다. 장소 ID는 iOS용 Places SDK 응답의 `place_id` 필드에 반환됩니다. 장소 ID 가이드에서 장소 ID를 저장, 새로고침, 관리하는 방법을 알아보세요.

iOS용 Places SDK 결과 표시

iOS용 Places SDK 결과를 Google 지도에 표시하거나 지도 없이 표시할 수 있습니다. 지도에 iOS용 Places SDK 결과를 표시하려면 이러한 결과를 Google 지도에 표시해야 합니다. Google 지도가 아닌 지도에서 iOS용 Places SDK 데이터를 사용할 수 없습니다.

애플리케이션 내에서 Google 지도에 데이터를 표시하는 경우, Google 로고가 포함되어야 하며 로고를 변경할 수 없습니다. Google 데이터를 Google 지도와 동일한 화면에 표시하는 애플리케이션은 Google에 대한 저작자 표시를 추가로 제공할 필요가 없습니다.

애플리케이션 내에서 Google 지도를 표시하지 않는 페이지나 뷰에서 데이터를 표시하는 경우, 해당 데이터와 함께 Google 로고를 표시해야 합니다. 예를 들어 애플리케이션에서 특정 탭에 Google 데이터를 표시하고, 다른 탭에서는 동일한 데이터를 Google 지도와 함께 표시하는 경우 첫 번째 탭에서 Google 로고를 표시해야 합니다. 애플리케이션에서 검색창을 사용하는 경우 로고를 인라인으로 표시해야 합니다(자동 완성 사용 여부와 무관).

Google 로고는 지도의 왼쪽 하단에 배치하고 저작자 표시 정보는 오른쪽 하단에 표시해야 합니다. 로고와 저작자 표시 모두 지도 안에 있어야 하며 지도 밑에 있거나 애플리케이션의 다른 위치에 게시해서는 안 됩니다. 다음 지도 예시에서는 지도의 왼쪽 하단에 있는 Google 로고와 지도 오른쪽 하단에 있는 저작자 표시를 보여줍니다.

정책 저작자 표시 위치

다음 zip 파일에는 데스크톱, Android 및 iOS 애플리케이션별 적정 크기의 Google 로고가 있습니다. 어떤 방식으로든 로고를 수정하거나 크기를 조정해서는 안 됩니다.

다운로드: google_logo.zip

저작자 표시를 수정해서는 안 됩니다. 저작자 표시 정보를 삭제하거나, 가리거나, 일부를 자를 수 없습니다. Google 로고는 인라인으로 사용할 수 없습니다(예: '이 지도는 [Google_logo]에서 제공받았습니다').

저작자 표시는 콘텐츠와 가까운 곳에 배치해야 합니다. 직접 삽입하는 경우가 아닌 Google 이미지의 스크린샷을 사용한다면 이미지에 나타난 표준 저작자 표시를 포함시키세요. 저작자 표시 텍스트를 콘텐츠에 가까이 배치하고 일반 사용자나 독자가 쉽게 알아볼 수 있다면 필요에 따라 저작자 표시 텍스트의 스타일과 위치를 맞춤설정할 수 있습니다. 저작자 표시를 콘텐츠와 멀리 떨어진 위치로 이동해서는 안 됩니다(예: 책의 마지막 부분, 파일이나 영상의 크레딧, 웹사이트의 바닥글).

서드 파티 데이터 제공업체를 포함해야 합니다. Google의 지도 제품에 포함된 일부 데이터와 이미지는 Google 외 제공업체가 제공합니다. 이러한 이미지를 사용하는 경우, 저작자 표시에서 서비스명인 'Google'과 관련 데이터 제공업체를 명시해야 합니다(예: '지도 데이터: Google, Maxar Technologies'). 이미지에 인용된 서드 파티 데이터 제공업체가 있는 경우 저작자 표시에 'Google' 또는 Google 로고만 포함해서는 안 됩니다.

기기에서 Google Maps Platform을 사용 중이며 저작자 표시가 실용적이지 못한 경우 Google 영업팀에 문의하여 사용 사례에 적합한 라이선스를 확인하세요.

기타 저작자 표시 요구사항

서드 파티 제공업체 저작자 표시에는 제공된 형식으로 사용자에게 표시해야 하는 콘텐츠와 링크가 포함됩니다. Google은 앱에서 장소 세부정보 아래에 이 정보를 표시할 것을 권장합니다.

API에서 반환하는 서드 파티 저작자 표시에는 Google 저작자 표시가 포함되지 않습니다. Google 로고 및 저작자 표시에 설명된 대로 이 저작자 표시를 직접 포함해야 합니다.

단일 장소 또는 장소 모음에 대한 서드 파티 저작자 표시를 검색하려면 다음 안내를 따르세요.

단일 장소의 속성을 가져옵니다.

ID로 장소를 가져와 장소를 검색하면 GMSPlaceattributions 속성에서 해당 장소의 속성을 가져올 수 있습니다.

attributionsNSAttributedString 객체로 제공됩니다.

장소 모음의 속성을 가져옵니다.

앱이 기기의 현재 장소를 요청하여 획득한 정보를 표시하는 경우 표시된 장소 세부정보에 관한 서드 파티 저작자 표시를 표시해야 합니다. GMSPlaceLikelihoodListattributions 속성에서 요청에서 가져온 모든 장소의 저작자 표시를 검색할 수 있습니다.

attributionsNSAttributedString 객체로 제공되며, 에서 설명한 대로 단일 장소에서 attributions와 같은 방식으로 액세스하고 표시할 수 있습니다.

사진의 저작자 표시

앱이 사진을 표시하는 경우 사진이 있는 각 사진의 attributionsauthorAttributions를 표시해야 합니다.

  • 저작자 표시에 액세스하려면 GMSPlacePhotoMetadata.attributions를 사용하세요. 이 속성은 표시할 속성이 없는 경우 NSAttributedString 또는 nil입니다.
  • 작성자 저작자 표시에 액세스하려면 GMSPlacePhotoMetadata.authorAttributions를 사용하세요. 이 속성에는 GMSPlaceAuthorAttribution 객체의 배열이 포함됩니다.

Swift

GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in
  if let error = error {
    // TODO: handle the error.
    print("Error: \(error.description)")
  } else {
    // Get attribution for the first photo in the list.
    if let photo = photos?.results.first {
      let attributions = photo.attributions
    }
  }
}
    

Objective-C

[[GMSPlacesClient sharedClient]
    lookUpPhotosForPlaceID:placeID
      callback:^(GMSPlacePhotoMetadataList *_Nullable photos,
                  NSError *_Nullable error) {
        if (error) {
          // TODO: handle the error.
          NSLog(@"Error: %@", [error description]);
        } else {
          // Get attribution for the first photo in the list.
          if (photos.results.count > 0) {
            GMSPlacePhotoMetadata *photo = photos.results.firstObject;
            NSAttributedString *attributions = photo.attributions;
          }
        }
      }];
    

리뷰 표시

GMSPlace 객체에는 최대 5개의 리뷰가 포함될 수 있으며 각 리뷰는 GMSPlaceReview 객체로 표시됩니다. 선택적으로 앱에 이러한 리뷰를 표시할 수 있습니다.

Google 사용자가 제공한 리뷰를 표시할 때는 작성자 이름을 가깝게 배치해야 합니다. GMSPlaceReview 객체의 작성자 저작자 표시 필드에 제공된 경우 작성자의 사진과 프로필 링크도 포함하는 것이 좋습니다. 다음 이미지는 공원 리뷰의 예를 보여줍니다.

작성자 저작자 표시

또한 최종 사용자에게 리뷰가 정렬되는 방식을 표시하는 것이 좋습니다.

리뷰에 액세스하려면 다음 단계를 따르세요.

Swift

// Define a Place ID.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews]

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    let firstReview: GMSPlaceReview = place.reviews![0]

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
})

Objective-C

// Define a Place ID.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return, including reviews.
NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews];

GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error) {
    // TODO: handle the error.
    NSLog(@"Error: %@", [error description]);
  } else {
    // Get first review.
    GMSPlaceReview *firstReview = [place reviews][0];

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
}];

타사 저작자 표시 표시

서드 파티 제공업체의 저작자 표시는 보존하고 사용자에게 표시해야 하는 콘텐츠와 링크가 포함된 NSAttributedString 객체로 제공됩니다.

기여 분석을 표시하는 데 권장되는 방법은 기여 분석의 링크가 작동해야 하므로 UITextView를 사용하는 것입니다. 링크가 작동하도록 하려면 UITextView에서 대리자를 설정하고 UITextViewDelegateshouldInteractWithURL 메서드가 YES를 반환하도록 설정합니다.

Swift

...
  self.attributionTextView.delegate = self
...

// MARK: - UITextViewDelegate

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL,
  inRange characterRange: NSRange) -> Bool {
  // Make links clickable.
  return true
}
    

Objective-C

...
  self.attributionTextView.delegate = self;
...

#pragma mark - UITextViewDelegate

- (BOOL)textView:(UITextView *)textView
    shouldInteractWithURL:(NSURL *)url
                  inRange:(NSRange)characterRange {
  // Make links clickable.
  return YES;
}
    

타사 특성의 예

일반적으로 타사 특성은 링크가 포함된 텍스트로 구성됩니다. 예를 들면 다음과 같습니다.

예시 회사별 등록정보

위의 예에서는 예시 회사 텍스트 범위에 NSLink 속성이 적용됩니다.

Google 저작자 표시의 스타일 가이드라인

다음은 다운로드 가능한 Google 로고를 사용할 수 없는 경우 CSS 및 HTML 형식의 Google 저작자 표시를 위한 스타일 가이드라인입니다.

공간 확보하기

락업 주변의 빈 공간은 Google의 'G' 높이와 같거나 높아야 합니다.

저작자 표시 문구와 Google 로고 간 공간은 'G' 너비의 반이어야 합니다.

가독성

작성자 이름은 항상 명확하고 읽기 수월해야 하며 배경에 적합한 색상으로 표시되어야 합니다. 선택하는 로고 버전에 대해 충분한 색상 대비를 사용하세요.

색상

0%~40% 색조 범위의 검은색을 사용하는 흰색 또는 밝은 색상의 배경에서 Google Material Gray 700 색상의 텍스트를 사용하세요.

Google
#5F6368
RGB 95 99 104
HSL 213 5 39
HSB 213 9 41

어두운 배경, 화려하지 않은 패턴을 포함하는 배경 또는 사진에서는 작성자 이름 및 저작자 표시에 흰색 텍스트를 사용하세요.

Google
#FFFFFF
RGB 255 255 255
HSL 0 0 100
HSB 0 0 100

글꼴

Roboto 글꼴을 사용하세요.

예시 CSS

다음 CSS는 'Google'이라는 텍스트에 적용되었을 때 흰색 또는 밝은 색상의 배경에서 'Google'을 적절한 글꼴, 색상 및 간격으로 렌더링시킵니다.

font-family: Roboto;
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 16px;
padding: 16px;
letter-spacing: 0.0575em; /* 0.69px */
color: #5F6368;