장소 세부정보

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Android용 Places SDK는 장소 이름과 주소, 위도/경도 좌표로 지정된 지리적 위치, 장소의 유형 (나이트클럽, 애완동물 가게, 박물관 등) 등 장소에 관한 풍부한 정보를 앱에 제공합니다. 특정 장소에 대해 이 정보에 액세스하려면 장소를 고유하게 식별하는 안정적인 식별자인 장소 ID를 사용하면 됩니다.

장소 세부정보

Place 객체는 특정 장소에 대한 정보를 제공합니다. 다음과 같은 방법으로 Place 객체를 가져올 수 있습니다.

장소를 요청할 때 반환할 장소 데이터 유형을 지정해야 합니다. 이렇게 하려면 List<Place.Field>를 전달하여 반환할 데이터 유형을 지정하세요. 이는 각 요청의 비용에 영향을 주므로 중요한 고려사항입니다. 장소 데이터 결과는 비워 둘 수 없으므로 데이터가 있는 장소 결과만 반환됩니다. 예를 들어 요청된 장소에 사진이 없으면 photos 필드가 결과에 표시되지 않습니다. 다음 필드 중 하나 이상을 지정할 수 있습니다.

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

장소 필드에 대해 자세히 알아보세요. 장소 데이터 요청에 대한 요금 청구 방법에 대한 자세한 내용은 사용량 및 결제를 참조하세요.

다음 메서드를 사용하여 Place에서 데이터를 검색하세요.

  • getAddress() – 사람이 읽을 수 있는 형식의 장소 주소입니다.
  • getAddressComponents() – 이 장소에 대한 주소 구성요소의 List입니다. 이러한 구성요소는 장소의 주소에 관한 구조화된 정보를 추출하기 위한 목적(예: 장소가 위치한 도시 검색)에 제공됩니다. 주소 형식 지정에 이러한 구성요소를 사용하지 마세요. 대신 현지화된 형식 지정 주소를 제공하는 getAddress()을 호출하세요.
  • getBusinessStatus() – 비즈니스의 경우 장소의 운영 상태를 나타냅니다. OPERATIONAL, CLOSED_TEMPORARILY, CLOSED PERMANENTLY 값 중 하나를 포함할 수 있습니다.
  • getAttributions(): 장소의 데이터가 사용되는 경우 사용자에게 표시해야 하는 속성입니다.
  • getID() – 장소의 텍스트 식별자입니다. 이 페이지의 나머지 부분에서 장소 ID에 대해 자세히 알아보세요.
  • getLatLng() – 위도와 경도 좌표로 지정된 장소의 지리적 위치입니다.
  • getName() – 장소의 이름입니다.
  • getOpeningHours() – 장소의 OpeningHours. OpeningHours.getWeekdayText()를 호출하여 각 요일의 영업시간과 종료 시간을 나타내는 문자열 목록을 반환합니다. OpeningHours.getPeriods()를 호출하여 getWeekdayText()에서 제공하는 데이터와 동등한 상세 정보가 포함된 period 객체 목록을 반환합니다. 참고: 장소가 항상 영업 중인 경우 기간은 일요일 자정으로 표시되고 closeEvent은 null입니다.
  • getPhoneNumber(): 장소의 전화번호입니다.
  • getPhotoMetadatas() – 비트맵 이미지를 포함하여 장소와 연결된 사진과 연결된 메타데이터입니다.
  • getPlusCode() – 이 장소의 PlusCode 위치.
  • getPriceLevel() – 이 장소의 가격 수준으로, 0 (가장 저렴함)부터 4 (가장 비쌈) 범위의 값을 가진 정수로 반환됩니다.
  • getRating() – 집계된 합산 리뷰 수에 따라 1.0~5.0 범위의 부동 소수점 수로 반환한 장소 평점입니다.
  • getTypes() – 이 장소를 특징짓는 장소 유형의 목록입니다. 사용 가능한 장소 유형 목록은 Place 인터페이스에 관한 문서를 참고하세요.
  • getUserRatingsTotal() – 이 장소의 총 사용자 평점 수.
  • getIconUrl() – 장소 유형을 나타내는 검은색 아이콘 마스크의 URL입니다.
  • getIconBackgroundColor – 장소 유형의 아이콘 배경색입니다.
  • getUtcOffsetMinutes(): UTC 오프셋(분 단위)
  • getViewport()LatLngBounds 객체로 반환되는 뷰포트로, 지도에 장소를 표시하는 데 유용합니다. 장소의 크기를 알 수 없는 경우 null을 반환할 수 있습니다.
  • getWebsiteUri() – 장소 웹사이트의 URI(알려진 경우) 장소와 연결된 비즈니스 또는 기타 법인에서 관리하는 웹사이트입니다. 웹사이트가 알려진 경우 null을 반환합니다.
  • isOpen() – 장소의 현재 영업 여부를 나타내는 부울 값입니다. 시간을 지정하지 않으면 이제 기본값이 사용됩니다. isOpenPlace.Field.UTC_OFFSETPlace.Field.OPENING_HOURS를 모두 사용할 수 있는 경우에만 반환됩니다. 정확한 결과를 얻으려면 원래 장소 요청에 Place.Field.BUSINESS_STATUSPlace.Field.UTC_OFFSET 필드를 요청하세요. 요청되지 않는 경우 비즈니스가 영업 중인 것으로 간주됩니다. 장소 세부정보와 함께 isOpen를 사용하는 방법은 이 동영상을 참고하세요.

몇 가지 간단한 예시:

자바


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

ID로 장소 가져오기

장소 ID는 장소를 고유하게 식별하는 텍스트 식별자입니다. Android용 Places SDK에서 Place.getId()를 호출하여 장소의 ID를 검색할 수 있습니다. Place Autocomplete 서비스에서는 제공된 검색어 및 필터와 일치하는 각 장소의 장소 ID도 반환합니다. 장소 ID를 저장하고 나중에 Place 객체를 다시 가져오는 데 사용할 수 있습니다.

ID로 장소를 가져오려면 PlacesClient.fetchPlace()를 호출하고 FetchPlaceRequest를 전달합니다.

API는 Task에서 FetchPlaceResponse을 반환합니다. FetchPlaceResponse에 제공된 장소 ID와 일치하는 Place 객체가 있습니다.

다음 코드 예는 fetchPlace()를 호출하여 지정된 장소의 세부정보를 가져오는 방법을 보여줍니다.

자바


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

앱에 특성 표시

앱에 장소 정보가 표시되면 저작자 표시도 표시해야 합니다. 기여 분석에 대한 문서를 참조하세요.

장소 ID에 대한 추가 정보

Android용 Places SDK에서 사용되는 장소 ID는 Places API에서 사용되는 것과 동일한 식별자입니다. 각 장소 ID는 한 장소만 참조할 수 있지만, 단일 장소는 두 개 이상의 장소 ID를 가질 수 있습니다. 장소가 새 장소 ID를 가져올 수 있는 다른 경우가 있습니다. 예를 들어 비즈니스가 새 위치로 이동하는 경우에 이러한 상황이 발생할 수 있습니다.

장소 ID를 지정하여 장소를 요청하면 응답에서 항상 같은 장소를 받을 수 있습니다 (장소가 아직 존재하는 경우). 그러나 응답에는 요청에 있는 장소 ID와 다른 장소 ID가 포함될 수 있습니다.

자세한 내용은 장소 ID 개요를 참고하세요.