모든 준비를 마쳤습니다!

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

Google Places API for Android 활성화

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

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

장소 선택기

장소 선택기 UI 위젯

장소 선택기는 간단하지만 유용한 내장 UI 위젯으로, Google Places API for Android의 일부입니다.

장소 선택기 소개

PlacePicker는 지리적 주소와 현지 사업체에 해당하는 장소를 포함한, 대화형 지도와 주변 장소 목록을 표시하는 UI 대화상자를 제공합니다. 사용자가 장소를 선택하면, 앱에서 선택한 장소의 세부정보를 검색할 수 있습니다.

장소 선택기는 UI 위젯을 직접 개발하는 것에 비해 다음과 같은 이점을 제공합니다.

  1. Google 앱 및 타사 앱을 포함한, 장소 선택기를 사용하는 다른 앱과 사용자 경험의 일관성이 유지됩니다. 즉, 앱의 사용자가 장소 선택기와 소통하는 방법을 이미 알고 있습니다.
  2. 지도가 장소 선택기에 통합됩니다.
  3. 필요한 옵션이 기본적으로 제공됩니다.
  4. 따라서 개발 시간을 줄일 수 있습니다.

장소 선택기는 사용자 검색 입력을 기반으로 장소 예상 검색어를 표시하는 자동완성 기능을 제공합니다. 이 기능은 모든 장소 선택기 통합에 있으므로 자동완성을 활성화하기 위해 추가 작업을 수행할 필요가 없습니다. 자동완성에 대한 자세한 내용은 장소 자동완성을 참조하세요.

권한

앱이 장소 선택기를 사용하는 경우 ACCESS_FINE_LOCATION 권한을 요청해야 합니다.

Android 6.0 Marshmallow의 새로운 권한 모델

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

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

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

장소 선택기 추가

다음은 장소 선택기를 실행하는 데 필요한 단계를 요약한 것입니다.

  1. PlacePicker.IntentBuilder()를 사용하여 Intent를 생성합니다.
  2. 장소 선택기의 기본 동작을 변경하려면, 장소 선택기가 표시하는 지도의 최초 위도 및 경도 경계를 빌더를 사용하여 설정하면 됩니다. 빌더에서 setLatLngBounds()를 호출하고 LatLngBounds에 전달하여 최초 위도 및 경도 경계를 설정합니다. 이 경계는 '뷰포트'라고 불리는 영역을 정의합니다. 기본적으로 뷰포트는 기기의 중앙에 위치하고 도시 블록 수준에서 확대/축소됩니다.
  3. 결과가 반환되면 요청을 식별할 수 있도록, startActivityForResult()를 호출하여 인텐트와 사전 정의된 요청 코드를 전달합니다.

다음 코드 스니펫은 장소 선택기를 실행합니다.

int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST);

사용자가 장소를 선택하면 PlacePicker.getPlace()를 호출하여 장소를 검색할 수 있습니다. 사용자가 장소를 선택하지 않은 경우 이 메서드는 null을 반환합니다.

또한 PlacePicker.getLatLngBounds()를 호출하여 가장 최근의 지도 경계도 검색할 수 있습니다.

다음 코드 스니펫은 사용자가 선택한 장소를 검색합니다.

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == PLACE_PICKER_REQUEST) {
    if (resultCode == RESULT_OK) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
  }
}

머티리얼 테마를 사용하여 사용자 지정 색 설정

머티리얼 테마를 사용하여 애플리케이션에서 사용자 지정 색을 설정하면, 장소 선택기가 이 테마에서 colorPrimarycolorPrimaryDark 특성을 상속합니다. 이는 앱과 장소 선택기에서 일관된 브랜드를 유지하는 데 유용합니다.

앱에 특성 표시

앱이 장소 선택기를 통해 획득한 정보를 표시하는 경우 특성도 표시해야 합니다. 특성에 대한 문서를 참조하세요.

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

location_on
Google Places API for Android