Tổng quan về di chuyển

Hướng dẫn này nêu bật các điểm khác biệt chính giữa dịch vụ Địa điểm cũ và lớp Địa điểm mới. Việc nâng cấp lên lớp Địa điểm mang lại nhiều lợi thế đáng kể, bao gồm cả hiệu suất được cải thiện và mô hình định giá mới. Để khai thác tối đa tính năng Địa điểm và đảm bảo ứng dụng của bạn luôn được cập nhật, hãy làm quen với các thay đổi được nêu chi tiết trong hướng dẫn này.

Bật API Địa điểm

Lớp Địa điểm dựa vào dịch vụ API Địa điểm. Để sử dụng các tính năng của lớp Địa điểm mới, trước tiên, bạn phải bật API Địa điểm (Mới) trong dự án Google Cloud. Để biết thêm thông tin, hãy xem phần Bắt đầu.

Thay đổi chung

Bảng sau đây liệt kê một số điểm khác biệt chính giữa PlacesServicePlace:

PlacesService (Cũ) Place (Mới)
Các phương thức yêu cầu sử dụng lệnh gọi lại để xử lý đối tượng kết quả và phản hồi google.maps.places.PlacesServiceStatus. Sử dụng Lời hứa và hoạt động không đồng bộ.
Các phương thức yêu cầu phải kiểm tra PlacesServiceStatus. Không cần kiểm tra trạng thái, có thể sử dụng tính năng xử lý lỗi chuẩn.
Trường dữ liệu vị trí được định dạng bằng cách sử dụng kiểu viết thường. Trường dữ liệu vị trí được định dạng bằng cách sử dụng kiểu viết hoa camel.
Chỉ giới hạn ở một nhóm cố định các loại địa điểmtrường dữ liệu địa điểm. Cung cấp nhiều lựa chọn hơn về các loại địa điểmtrường dữ liệu địa điểm được cập nhật thường xuyên.

Các thay đổi dành riêng cho API

Lớp Place cung cấp một API để sử dụng thư viện Places và hỗ trợ các mẫu sử dụng hiện đại như Promises. Lớp Địa điểm hiển thị các trường dữ liệu địa điểm và loại địa điểm giống như Dịch vụ địa điểm cũ, đồng thời bao gồm nhiều giá trị mới cho các trường dữ liệu địa điểm và loại địa điểm.

Bảng này cho thấy cách các tính năng của dịch vụ Địa điểm liên kết với các tính năng của lớp Địa điểm:

Dịch vụ Địa điểm (Cũ) Lớp địa điểm (Mới)
Đặt trường dữ liệu Đặt trường dữ liệu lớp
Loại địa điểm Loại địa điểm
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
Lớp Autocomplete Lớp PlaceAutocompleteElement
Lớp SearchBox ---

Tải thư viện Địa điểm

Cách ứng dụng của bạn tải thư viện Địa điểm phụ thuộc vào trình tải khởi động đang được sử dụng. Nếu ứng dụng của bạn sử dụng tính năng nhập thư viện động, bạn có thể tải các thư viện cần thiết trong thời gian chạy bằng cách sử dụng toán tử await để gọi importLibrary(), như minh hoạ dưới đây:

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

Nếu ứng dụng của bạn sử dụng thẻ tải tập lệnh trực tiếp, hãy yêu cầu thư viện places trong tập lệnh trình tải:

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

Tìm hiểu thêm về cách tải API JavaScript của Maps.

Phần này bao gồm các hướng dẫn sau đây để giúp bạn di chuyển ứng dụng của mình nhằm sử dụng phiên bản mới nhất của API Địa điểm: