모든 준비를 마쳤습니다!

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

Google Places API for Android 활성화

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

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

현재 장소

Google Places API for Android를 사용하여 현재 기기가 있는 장소에 대한 정보를 얻을 수 있습니다. 즉, 현재 보고된 기기의 위치에 있는 장소를 의미합니다. 이러한 예로는 지역 사업체, 관심 지점 및 지리적 위치 등이 있습니다.

권한

앱이 PlaceDetectionApi.getCurrentPlace()를 사용하는 경우, ACCESS_FINE_LOCATION 권한을 요청해야 합니다.

Android 6.0 Marshmallow의 새로운 권한 모델

Android 6.0(Marshmallow)에서는 권한 처리를 위한 새로운 모델을 소개합니다. 이를 통해 사용자가 앱을 설치하고 업그레이드할 때 과정을 간소화할 수 있습니다. 버전 8.1 이상의 Google Play 서비스를 사용 중인 경우에는, Android 6.0 Marshmallow SDK를 대상으로 새 권한 모델을 사용하도록 앱을 구성할 수 있습니다.

앱이 새 권한 모델을 지원하는 경우, 사용자가 앱을 설치하거나 업그레이드할 때 아무런 권한도 부여할 필요가 없습니다. 그 대신, 앱이 런타임에 필요할 때마다 권한을 요청해야 하며, 시스템이 사용자에게 해당 권한을 요청하는 대화상자를 표시합니다.

자세한 내용은 Android 6.0 Marshmallow의 문서와 새 권한 모델에 대해 앱에서 변경해야 하는 사항을 참조하세요.

사용 제한

PlaceDetectionApi.getCurrentPlace() 메서드 사용에는 계층화된 쿼리 제한이 적용됩니다. 사용 제한에 대한 문서를 참조하세요.

현재 위치 가져오기

현재 기기가 있는 지역 사업체 또는 기타 장소를 찾으려면 PlaceDetectionApi.getCurrentPlace()를 호출합니다.

선택적으로 PlaceFilter를 지정하여 하나 이상의 장소 ID(최대 10)로 결과를 제한하거나 현재 영업 중인 장소만 선택할 수 있습니다. 필터를 지정하지 않으면 결과가 필터링되지 않습니다.

API는 PendingResult에서 PlaceLikelihoodBuffer를 반환합니다. PlaceLikelihoodBuffer는 예상 장소를 나타내는 PlaceLikelihood 객체 목록을 포함합니다. 각 장소에 대한 결과에는 해당 장소의 정확도를 나타내는 유사도 표시가 포함됩니다. 필터 기준에 해당하는 알려진 장소가 없으면 버퍼가 비어있을 수 있습니다.

PlaceLikelihood.getPlace()를 호출하여 Place 객체를 검색하고, PlaceLikelihood.getLikelihood()를 호출하여 장소 유사도 평점을 알아낼 수 있습니다. 더 높은 값은 해당 장소가 최적 일치가 될 확률이 더 높음을 의미합니다.

다음 코드 샘플은 기기가 있을만한 장소 목록을 검색하고 각 장소의 이름과 유사도를 기록합니다.

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    for (PlaceLikelihood placeLikelihood : likelyPlaces) {
      Log.i(TAG, String.format("Place '%s' has likelihood: %g",
          placeLikelihood.getPlace().getName(),
          placeLikelihood.getLikelihood()));
    }
    likelyPlaces.release();
  }
});

유사도 값에 대한 유의 사항:

  • 유사도는 단일 요청에 대해 반환된 장소 목록 내에서 해당 장소가 최적 일치가 될 상대적인 확률을 제공합니다. 다른 요청과는 유사도를 비교할 수 없습니다.
  • 유사도의 값은 0 ~ 1.0 사이입니다.
  • 주어진 PlaceLikelihoodBuffer에서 유사도의 합계는 항상 1.0보다 작거나 같습니다. 합계가 반드시 1.0일 필요는 없습니다.

예를 들어, 정확한 장소가 Place A인 55% 유사도와 정확한 장소가 Place B인 35% 유사도를 나타낼 경우, PlaceLikelihoodBuffer는 다음의 두 멤버를 가집니다: 유사도가 0.55인 Place A와 유사도가 0.35인 Place B.

앱에 특성 표시

앱이 PlaceDetectionApi.getCurrentPlace()에서 획득한 정보를 표시하는 경우 특성도 표시해야 합니다. 특성에 대한 문서를 참조하세요.

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

location_on
Google Places API for Android