현재 위치 (기존)에서 주변 지역 검색 (신규)으로 이전

유럽 경제 지역 (EEA) 개발자

Android용 Places SDK (레거시)는 현재 위치(레거시)를 지원합니다. 현재 장소 (기존)를 잘 알고 있다면 주변 지역 검색(신규)에서 다음과 같이 변경됩니다.

  • 새로운 가격 책정 모델을 사용합니다. 모든 API의 가격 정보는 Android용 Places SDK(신규)를 참고하세요.

  • Places.initializeWithNewPlacesApiEnabled() 메서드를 호출하여 앱을 초기화해야 합니다. Places API 서비스 선택에 대한 자세한 내용은 Google Cloud 프로젝트 설정을 참고하세요.

  • 필드 마스킹이 필요합니다. 응답에서 반환할 필드를 지정해야 합니다. 반환된 필드의 기본 목록은 없습니다. 이 목록을 생략하면 메서드에서 오류를 반환합니다.

  • Nearby Search (신규)는 PlaceLikelihood을 지원하지 않습니다. Nearby Search (New)를 사용하면 결과 순서를 사용하여 가장 가능성이 높은 위치를 확인할 수 있습니다.

Nearby Search (신규) 예

자세한 내용과 주변 지역 검색 (신규) 사용 예시는 주변 지역 검색 (신규) 문서를 참고하세요.

주변 지역 검색 (신규)을 사용하여 현재 장소 가져오기

다음 샘플은 PlacesClient.findCurrentPlace() 사용을 PlacesClient.searchNearby()로 대체하여 Nearby Search (New)로 현재 장소를 가져오는 방법을 보여줍니다.

public class MainActivity extends extends AppCompatActivity {

  private FusedLocationProviderClient fusedLocationProviderClient;

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    // ...

    // get permission
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.ACCESS_FINE_LOCATION)
        == PackageManager.PERMISSION_GRANTED) {

      // get location and search
      fusedLocationProviderClient
        .getLastLocation()
        .addOnSuccessListener(
            this,
            location -> {
              if (location != null) {
                LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
                CircularBounds circle = CircularBounds.newInstance(latLng, 10);
                List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);

                SearchNearbyRequest.Builder request = SearchNearbyRequest.builder(circle, placeFields);

                placesClient
                    .searchNearby(request.build())
                    .addOnSuccessListener(response ->
List<Place> places = response.getPlaces();)
                    .addOnFailureListener(
                        exception -> {
                          // handle failure
                        });
              } else {
                // failed to get location.
              }
            })
        .addOnFailureListener(
            e -> {
              // handle error
            });

    } else {
      ActivityCompat.requestPermissions(
          this,
          new String[] {Manifest.permission.ACCESS_FINE_LOCATION},
          PERMISSION_REQUEST_CODE);
    }

  }
}