iOS용 Places SDK는 앱에 풍부한 정보를 제공합니다. 장소에 대한 정보와 함께 해당 장소의 이름 및 주소, 지리적 위치, 위도/경도 좌표로 지정된 위치, 장소의 유형 (예: 나이트클럽, 애완동물 용품점, 박물관 등입니다. 이러한 정보에 액세스하려면 장소 ID를 사용할 수 있습니다. 장소 ID는 는 장소를 식별합니다.
장소 세부정보
이
GMSPlace
드림
클래스는 특정 장소에 대한 정보를 제공합니다. CANNOT TRANSLATE
GMSPlace
드림
객체를 다음과 같이 변경해야 합니다.
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
를 호출합니다. 다음 가이드를 참고하세요. 현재 장소 가져오기:- 전화걸기
GMSPlacesClient fetchPlaceFromPlaceID:
:GMSPlaceField
, 장소 ID 및 콜백 메서드를 지원합니다. Place Details 요청의 경우 요청에 필드를 하나 이상 지정하거나fields
를 생략한 경우 매개변수를 제거하면 가능한 모든 필드가 반환되며 사용자는 요금이 청구됩니다 자세한 내용은 ID로 장소 찾기를 참조하세요.
장소를 요청할 때
반환합니다. 이렇게 하려면 GMSPlaceField
를 전달하여 데이터를 지정합니다.
반환합니다. 이는 광고 투자수익에 영향을 미치기 때문에
요청당 비용이 많이 들 수 있습니다
장소 데이터 결과는 비워둘 수 없으므로 장소만
데이터가 있는 결과가 반환됩니다 (예를 들어 요청된 장소에
photos
필드는 결과에 표시되지 않습니다.
다음 예에서는 두 개의 필드 값 목록을 전달합니다. 를 사용하세요.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
장소 필드에 대해 자세히 알아보세요. 장소 데이터 요청에 대해 요금이 청구되는 방법에 대한 자세한 내용은 사용량 및 결제를 참고하세요.
이
GMSPlace
드림
클래스에는 다음과 같은 장소 데이터가 포함될 수 있습니다.
name
– 장소의 이름editorialSummary
– 장소에 대한 간단한 설명을 제공합니다.placeID
– 장소의 텍스트 식별자입니다. 읽기 장소 ID에 대해 자세히 알아보세요.coordinate
– 장소의 지리적 위치입니다. 위도와 경도 좌표로 지정됩니다.phoneNumber
– 장소의 전화번호 국가 코드 포함 형식입니다.formattedAddress
– 사람이 읽을 수 있는 이 주소 볼 수 있습니다이 주소는 대개 우편 주소와 일치합니다. 참고: 영국과 같은 일부 국가에서는 라이선스 제한으로 인해 실제 우편 주소의 배포가 허용되지 않습니다.
형식이 지정된 주소는 하나 이상의 주소 구성요소로 논리적으로 구성됩니다. 예를 들어 주소 '111 8th Avenue, New York, NY'는 '111'(번지), '8th Avenue'(경로), 'New York'(도시) 및 'NY'(미국의 주)로 구성됩니다.
형식이 지정된 주소를 프로그래매틱 방식으로 파싱하지 마세요. 대신 API 응답에 형식이 지정된 주소 필드 외에 포함되는 개별 주소 구성요소를 사용해야 합니다.
openingHours
– 장소의 영업시간(GMSOpeningHours
로 표현). 전화걸기GMSOpeningHours.weekdayText
: 현지화된 문자열 목록 가져오기 확인할 수 있습니다.GMSOpeningHours.Periods
에 전화 걸기 더 자세한 정보가 포함된GMSPeriod
목록 반환weekdayText
에서 제공한 데이터와 동등합니다. 참고: 장소가 항상 영업 중인 경우 기간은 다음과 같이 표시됩니다. 일요일 자정이고closeEvent
는 null입니다.currentOpeningHours
및secondaryOpeningHours
: 휴일 및 장소의 임시 일정 변경이 이루어지는 필드입니다.addressComponents
– 구성요소를 나타내는GMSAddressComponent
객체 주소를 만들 수 있습니다. 이러한 구성요소는 장소의 주소에 대한 구조화된 정보 추출(예: 특정 장소가 있는 도시 찾기 다음 구성요소를 사용하지 마세요. 주소 형식 지정formattedAddress
를 사용하세요. 속성을 사용하여 현지화된 버전의 주소를 제공합니다.addressComponents
에 관한 다음 사실에 유의하세요. 배열:- 주소 구성요소의 배열에
formattedAddress
- 배열은
포함된 주소 외에 주소를 포함해야 합니다.
formattedAddress
- 응답의 형식은 다음 기간 사이에 동일하게 유지되지 않을 수 있습니다.
요청을 처리합니다 특히
addressComponents
의 수는 요청된 주소에 따라 다르며, 시간이 지남에 따라 동일한 주소여야 합니다 배열에서 구성요소의 위치가 변경될 수 있습니다. 구성요소의 유형이 변경될 수 있습니다. 특정 구성요소는 누락될 수 있습니다.
- 주소 구성요소의 배열에
userRatingsTotal
– 리뷰 수를 나타냄 장소에 대한 평점입니다.
이
GMSPlace
드림
클래스에는 다음과 같은 멤버 함수가 포함되어 있습니다.
- <ph type="x-smartling-placeholder"></ph>
isOpen
는 지정된 시간에 장소의 영업 여부를 계산합니다.openingHours
기준 그리고UTCOffsetMinutes
님, 안녕하세요. 현재 날짜 및 시간을 나타냅니다. isOpenAtDate
드림 지정된 날짜에 장소의 개점 여부를openingHours
그리고UTCOffsetMinutes
님, 안녕하세요. 현재 날짜 및 시간을 나타냅니다.
이러한 함수를 사용하여 개점 시간이나 날짜를 가져올 때 원래
fetchPlaceFromPlaceID:
또는 findPlaceLikelihoodsFromUserLocationWithPlaceFields:
요청에서 GMSPlaceFieldOpeningHours
및 GMSPlaceFieldUTCOffsetMinutes
을(를) 지정해야 합니다.
있습니다. 이러한 필드 중 하나가 누락되면 결과 GMSPlace
객체에는 영업 시작 시간이나 날짜가 포함되지 않으며, 호출은
GMSPlaceOpenStatusUnknown
입니다. 정확한 결과를 위해
GMSPlaceFieldBusinessStatus
및 GMSPlaceFieldUTCOffsetMinutes
필드를 포함해야 합니다. 요청하지 않을 경우
비즈니스 운영에
도움이 될 수 있습니다
isOpen
특별 영업시간 제공
openingHours
까지는 정상 영업시간을 확인할 수 있지만 currentOpeningHours
및 secondaryOpeningHours
에서는 공휴일 및 임시 일정 변경을 지원합니다.
이처럼 특별한 날에는 특별 영업시간을 필터링하여 표시할 수 있습니다.
Swift
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Objective-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
ID로 장소 가져오기
장소 ID는 장소를 고유하게 나타내는 텍스트 식별자입니다. 포함
iOS용 Places SDK의 경우
GMSPlace
드림
객체를 지정합니다. 장소 ID를 저장하고 이를 사용하여
GMSPlace
드림
객체를 다시 생성할 수 있습니다.
ID로 장소를 가져오려면 다음을 호출합니다.
GMSPlacesClient
fetchPlaceFromPlaceID:
: 다음 매개변수를 전달합니다.
- 장소 ID가 포함된 문자열입니다.
- 반환할 데이터 유형을 지정하는 하나 이상의
GMSPlaceField
입니다. - 호출한 경우 자동 완성 쿼리를 완료하는 경우의 세션 토큰입니다. 그 외의 경우에는 nil을 전달합니다.
- 결과를 처리할
GMSPlaceResultCallback
API는 지정된 콜백 메서드를 호출하고
GMSPlace
드림
객체를 지정합니다. 장소를 찾을 수 없는 경우 장소 객체는 nil입니다.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
앱에 특성 표시
앱이
GMSPlacesClient
lookUpPlaceID:callback:
인 경우 앱은 저작자 표시도 표시해야 합니다.
관련 문서를 참조하세요.
기여 분석이 있습니다.
장소 ID에 대한 추가 정보
iOS용 Places SDK에서 사용되는 장소 ID는 는 Places API, Android용 Places SDK 및 기타 Google API를 사용할 수 있습니다.
각 장소 ID는 한 장소만 참조할 수 있지만 단일 장소가 여러 장소를 참조할 수 있습니다. 한 개 이상의 장소 ID가 있어야 합니다.
장소에 따라 새 장소 ID가 부여될 수도 있습니다. 예를 들어, 사업체를 새 위치로 이전하는 경우에 이러한 상황이 발생할 수 있습니다.
장소 ID를 지정하여 장소를 요청하면 응답에서 항상 동일한 장소를 받게 됩니다 (장소가 있음). 그러나 응답에 이전에 사용한 것과 다르게 표시됩니다.
자세한 내용은 장소 ID 개요