장소 세부정보

플랫폼 선택: Android iOS JavaScript 웹 서비스

Android용 Places SDK는 앱에 풍부한 정보를 제공합니다. 장소에 대한 정보와 함께 해당 장소의 이름 및 주소, 지리적 위치, 위도/경도 좌표로 지정된 위치, 장소의 유형 (예: 나이트클럽, 애완동물 용품점, 박물관 등입니다. 이러한 정보에 액세스하려면 장소 ID를 사용할 수 있습니다. 장소 ID는 는 장소를 식별합니다.

장소 세부정보

Place 드림 객체는 특정 장소에 대한 정보를 제공합니다. CANNOT TRANSLATE Place 드림 객체를 다음과 같이 변경해야 합니다.

장소를 요청할 때 반환할 장소 데이터를 지정해야 합니다. 이렇게 하려면 Place.Field 값을 반환할 수 있습니다. 이 목록은 요청당 비용이 들 수 있습니다.

장소 데이터 결과는 비워둘 수 없으므로 데이터가 있는 장소 결과만 반환됩니다 (예를 들어 요청된 장소에 사진이 없는 경우 photos 필드는 결과에 표시되지 않습니다.

다음 예에서는 세 가지 Place.Field 값 를 사용하세요.

Kotlin

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

자바

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

Place 객체 데이터 필드에 액세스

Place 객체를 가져온 후 객체의 메서드를 사용하여 데이터 필드입니다. Place 객체에서 필드가 누락된 경우 관련 메서드가 null을 반환합니다. 아래는 사용 가능한 메서드의 몇 가지 예입니다. 모든 메서드의 전체 목록은 Place 드림 API 참조 문서입니다.

  • getAddress() – 사람이 읽을 수 있는 장소의 주소 형식으로 입력합니다.
  • getAddressComponents()~A List 주소 구성요소를 관리할 수 있습니다. 이러한 구성요소는 특정 장소의 주소에 대한 구조화된 정보를 추출하기 위해 예를 들면 장소가 위치한 도시를 찾는 것입니다. 사용 금지 주소 형식 지정을 위한 구성요소 대신 getAddress()를 호출합니다. 는 현지화된 주소를 제공합니다.
  • getId() – 장소의 텍스트 식별자입니다. 읽기 장소 ID에 대해 자세히 알아보세요.
  • getLatLng() – 장소의 지리적 위치입니다. 위도와 경도 좌표로 지정됩니다.
  • getName() – 장소의 이름
  • getOpeningHours()OpeningHours 있습니다. OpeningHours.getWeekdayText()를 호출하여 각 요일의 개점 시간과 폐점 시간을 나타내는 문자열 확인할 수 있습니다 OpeningHours.getPeriods()를 호출하여 period 객체에 대해 getWeekdayText()에서 제공한 데이터와 같습니다.

    Place 객체에는 getCurrentOpeningHours() 다음 7일 동안 장소의 영업 시간을 반환하는 메서드이며, getSecondaryOpeningHours() 다음 7일 동안 장소의 보조 영업시간을 반환합니다.

  • isOpen() – 장소가 다음 상태인지 여부를 나타내는 불리언입니다. 현재 열려 있습니다. 시간을 지정하지 않으면 기본값은 지금입니다. isOpen Place.Field.UTC_OFFSETPlace.Field.OPENING_HOURS은(는) 사용 가능합니다. 데이터의 Place.Field.BUSINESS_STATUS를 요청하고 Place.Field.UTC_OFFSET 필드는 원래 장소 요청에 포함되어 있습니다. 요청하지 않으면 비즈니스가 운영 중인 것으로 간주됩니다. 사용 방법은 이 동영상을 참고하세요. 장소 세부정보가 포함된 isOpen

몇 가지 간단한 예시:

Kotlin



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

      

자바


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

      

ID로 장소 가져오기

장소 ID는 장소를 고유하게 나타내는 텍스트 식별자입니다. 포함 Android용 Places SDK를 사용하는 경우 다음을 호출하여 장소의 ID를 가져올 수 있습니다. Place.getId()Place Autocomplete 서비스 또한 제공된 검색어와 일치하는 각 장소의 장소 ID를 반환합니다. 필터를 만들 수 있습니다 장소 ID를 저장하고 이를 사용하여 Place 드림 객체를 다시 생성할 수 있습니다.

ID로 장소를 가져오려면 다음을 호출합니다. PlacesClient.fetchPlace()님, FetchPlaceRequest를 전달합니다.

API는 FetchPlaceResponse 드림 과녁을 맞히려는 화살의 TaskFetchPlaceResponse 드림 포함 Place 제공된 장소 ID와 일치하는 객체입니다.

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

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

      

자바


// 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.
    }
});

      
<ph type="x-smartling-placeholder">

영업 개시 상태 가져오기

PlacesClient.isOpen(IsOpenRequest request) 메서드는 장소가 해당 장소가 맞는지 나타내는 IsOpenResponse 객체를 반환합니다. 시간을 확인할 수 있습니다.

이 메서드는 다음을 포함하는 IsOpenRequest 유형의 단일 인수를 사용합니다.

  • Place 객체 또는 장소 ID를 지정하는 문자열.
  • 1970-01-01T00:00:00Z부터 시간을 밀리초 단위로 지정하는 시간 값입니다(선택사항). 시간을 지정하지 않으면 기본값은 지금입니다.

이 메서드를 사용하려면 Place 객체에 다음 필드가 있어야 합니다.

  • Place.Field.BUSINESS_STATUS
  • Place.Field.CURRENT_OPENING_HOURS
  • Place.Field.OPENING_HOURS
  • Place.Field.UTC_OFFSET

이러한 필드가 Place 객체에 제공되지 않거나 장소 ID를 전달하는 경우 메서드가 PlacesClient.fetchPlace() 가져올 수 있습니다 필수 필드가 있는 Place 객체를 만드는 방법에 대한 자세한 내용은 장소 세부정보를 참고하세요.

다음 예는 장소가 현재 영업 중인지 여부를 결정합니다. 이 예에서는 장소 ID를 isOpen()에 추가합니다.

Kotlin



val isOpenCalendar: Calendar = Calendar.getInstance()
val placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk"

val request: IsOpenRequest = try {
    IsOpenRequest.newInstance(placeId, isOpenCalendar.timeInMillis)
} catch (e: IllegalArgumentException) {
    e.printStackTrace()
    return
}
val isOpenTask: Task<IsOpenResponse> = placesClient.isOpen(request)
isOpenTask.addOnSuccessListener { response ->
    val isOpen = response.isOpen
}
// ...

      

자바


@NonNull
Calendar isOpenCalendar = Calendar.getInstance();
String placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk";
IsOpenRequest isOpenRequest;

try {
    isOpenRequest = IsOpenRequest.newInstance(placeId, isOpenCalendar.getTimeInMillis());
} catch (IllegalArgumentException e) {
    e.printStackTrace();
    return;
}

Task<IsOpenResponse> placeTask = placesClient.isOpen(isOpenRequest);

placeTask.addOnSuccessListener(
        (response) ->
                isOpen = response.isOpen());
// ...

      

다음 예는 Place 객체를 전달하는 isOpen() 호출을 보여줍니다. Place 객체에는 유효한 장소 ID가 포함되어야 합니다.

Kotlin



val isOpenCalendar: Calendar = Calendar.getInstance()
var place: Place
val placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk"
// Specify the required fields for an isOpen request.
val placeFields: List<Place.Field> = listOf(
    Place.Field.BUSINESS_STATUS,
    Place.Field.CURRENT_OPENING_HOURS,
    Place.Field.ID,
    Place.Field.OPENING_HOURS,
    Place.Field.UTC_OFFSET
)

val placeRequest: FetchPlaceRequest =
    FetchPlaceRequest.newInstance(placeId, placeFields)
val placeTask: Task<FetchPlaceResponse> = placesClient.fetchPlace(placeRequest)
placeTask.addOnSuccessListener { placeResponse ->
    place = placeResponse.place

    val isOpenRequest: IsOpenRequest = try {
        IsOpenRequest.newInstance(place, isOpenCalendar.timeInMillis)
    } catch (e: IllegalArgumentException) {
        e.printStackTrace()
        return@addOnSuccessListener
    }
    val isOpenTask: Task<IsOpenResponse> = placesClient.isOpen(isOpenRequest)
    isOpenTask.addOnSuccessListener { isOpenResponse ->
        val isOpen = isOpenResponse.isOpen
    }
    // ...
}
// ...

      

자바


@NonNull
Calendar isOpenCalendar = Calendar.getInstance();
String placeId = "ChIJD3uTd9hx5kcR1IQvGfr8dbk";
// Specify the required fields for an isOpen request.
List<Place.Field> placeFields = new ArrayList<>(Arrays.asList(
        Place.Field.BUSINESS_STATUS,
        Place.Field.CURRENT_OPENING_HOURS,
        Place.Field.ID,
        Place.Field.OPENING_HOURS,
        Place.Field.UTC_OFFSET
));

FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);

placeTask.addOnSuccessListener(
        (placeResponse) -> {
            Place place = placeResponse.getPlace();
            IsOpenRequest isOpenRequest;

            try {
                isOpenRequest = IsOpenRequest.newInstance(place, isOpenCalendar.getTimeInMillis());
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
                return;
            }
            Task<IsOpenResponse> isOpenTask = placesClient.isOpen(isOpenRequest);

            isOpenTask.addOnSuccessListener(
                    (isOpenResponse) -> isOpen = isOpenResponse.isOpen());
            // ...
        });
// ...

      

앱에 특성 표시

앱이 장소 리뷰를 포함한 장소 정보를 표시하는 경우 앱 또한 관련 정보를 표시해야 합니다. 모든 저작자 표시 자세한 내용은 기여 분석이 있습니다.

장소 ID에 대한 추가 정보

Android용 Places SDK에서 사용되는 장소 ID는 동일한 식별자입니다. Places API에서 사용됩니다. 각 장소 ID는 한 장소만 참조할 수 있지만 단일 장소가 여러 장소를 참조할 수 있습니다. 한 개 이상의 장소 ID가 있어야 합니다. 다른 상황으로 인해 새 장소 ID를 가져옵니다. 예를 들어 사업체가 새 회사로 이전하고 볼 수 있습니다

장소 ID를 지정하여 장소를 요청하면 응답에서 항상 동일한 장소를 받게 됩니다 (장소가 있음). 그러나 응답에 이전에 사용한 것과 다르게 표시됩니다.

자세한 내용은 장소 ID 개요