마이그레이션 개요

이 가이드에서는 기존 장소 서비스와 새 장소 클래스의 주요 차이점을 설명합니다. Place 클래스로 업그레이드하면 성능 개선, 새로운 가격 책정 모델 등 상당한 이점을 얻을 수 있습니다. 장소를 최대한 활용하고 앱을 최신 상태로 유지하려면 이 가이드에 설명된 변경사항을 숙지하세요.

Places API 사용 설정

Place 클래스는 Places API 서비스를 사용합니다. 새 장소 클래스의 기능을 사용하려면 먼저 Google Cloud 프로젝트에서 Places API (신규)를 사용 설정해야 합니다. 자세한 내용은 시작하기를 참고하세요.

일반적인 변경사항

다음 표에는 PlacesServicePlace의 주요 차이점이 나와 있습니다.

PlacesService (기존) Place (신규)
메서드는 결과 객체와 google.maps.places.PlacesServiceStatus 응답을 처리하기 위해 콜백을 사용해야 합니다. Promise를 사용하며 비동기식으로 작동합니다.
메서드에는 PlacesServiceStatus 검사가 필요합니다. 필수 상태 검사가 없으며 표준 오류 처리를 사용할 수 있습니다.
장소 데이터 필드의 형식은 스네이크 표기법을 사용합니다. 장소 데이터 필드의 형식은 케멜케이스를 사용합니다.
고정된 장소 유형장소 데이터 필드 집합으로 제한됩니다. 정기적으로 업데이트되는 장소 유형장소 데이터 필드의 확장된 선택을 제공합니다.

API별 변경사항

장소 클래스는 장소 라이브러리를 사용하기 위한 API를 제공하며 프로미스와 같은 최신 사용 패턴을 지원합니다. 장소 클래스는 기존 장소 서비스와 동일한 장소 데이터 필드와 장소 유형을 노출하며 장소 데이터 필드와 장소 유형에 관한 여러 가지 새로운 값을 포함합니다.

다음 표는 장소 서비스의 기능이 장소 클래스의 기능에 매핑되는 방식을 보여줍니다.

장소 서비스 (기존) 장소 클래스 (신규)
장소 데이터 필드 장소 클래스 데이터 필드
장소 유형 장소 유형
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
Autocomplete 클래스 PlaceAutocompleteElement 클래스
SearchBox 클래스 ---

장소 라이브러리 로드

앱에서 장소 라이브러리를 로드하는 방법은 사용 중인 부트스트랩 로더에 따라 다릅니다. 앱에서 동적 라이브러리 가져오기를 사용하는 경우 다음과 같이 await 연산자를 사용하여 importLibrary()를 호출하여 런타임에 필요한 라이브러리를 로드할 수 있습니다.

const { Place } = await google.maps.importLibrary("places");

앱에서 직접 스크립트 로드 태그를 사용하는 경우 로더 스크립트에서 places 라이브러리를 요청합니다.

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

Maps JavaScript API 로드에 대해 자세히 알아보기

이 섹션에는 최신 버전의 Places API를 사용하도록 앱을 이전하는 데 도움이 되는 다음 가이드가 포함되어 있습니다.