Bạn có thể yêu cầu thêm thông tin chi tiết về một cơ sở hoặc địa điểm du lịch cụ thể bằng cách sử dụng mã địa điểm của cơ sở/địa điểm đó và đưa ra yêu cầu Chi tiết về địa điểm (Mới). Place Details (Mới) trả về thông tin toàn diện hơn về địa điểm được chỉ định, chẳng hạn như địa chỉ đầy đủ, số điện thoại, điểm xếp hạng từ người dùng và bài đánh giá.
Có nhiều cách để lấy mã địa điểm. Bạn có thể sử dụng:
Yêu cầu Chi tiết về địa điểm (Mới)
Bạn có thể yêu cầu thông tin chi tiết về địa điểm bằng cách gọi
PlacesClient.fetchPlace()
và truyền đối tượng
FetchPlaceRequest
chứa mã địa điểm và danh sách trường, cũng như
mọi tham số không bắt buộc:
// Define a place ID.
final String placeId = "INSERT_PLACE_ID_HERE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);
Phản hồi Chi tiết về địa điểm (Mới)
Place Details (Mới) trả về dữ liệu ở dạng đối tượng
Place, chỉ bao gồm các trường mà bạn đã yêu cầu bằng danh sách
trường. Kết quả dữ liệu về địa điểm không thể trống, vì vậy, chỉ những kết quả về địa điểm có dữ liệu mới được trả về (ví dụ: nếu một địa điểm được yêu cầu không có ảnh, thì trường ảnh sẽ không có trong kết quả).
Để truy cập vào các trường dữ liệu, hãy gọi phương thức tương ứng
method.
Ví dụ: để truy cập vào tên địa điểm, hãy gọi getName().
Thông số bắt buộc
Các thông số bắt buộc cho
FetchPlaceRequest
là:
-
Mã địa điểm
Mã nhận dạng dạng văn bản xác định duy nhất một địa điểm, được trả về từ Tìm kiếm văn bản (Mới), Nearby Search (Mới), hoặc Tự động hoàn thành (Mới). Để biết thêm thông tin về mã địa điểm, hãy xem bài viết tổng quan về mã địa điểm .
-
Danh sách trường
Khi yêu cầu một địa điểm, bạn phải chỉ định dữ liệu về địa điểm cần trả về. Để thực hiện việc này, hãy truyền danh sách các
Place.Fieldgiá trị chỉ định dữ liệu cần trả về. Không có danh sách mặc định về các trường được trả về trong phản hồi.Danh sách trường là một phương pháp thiết kế hay để đảm bảo rằng bạn không yêu cầu dữ liệu không cần thiết, giúp tránh thời gian xử lý và phí thanh toán không cần thiết.Danh sách này là một yếu tố quan trọng cần cân nhắc vì nó ảnh hưởng đến chi phí cho mỗi yêu cầu. Để biết thêm thông tin, hãy xem Mức sử dụng và Thanh toán.
Chỉ định một hoặc nhiều trường sau:
Các trường sau đây kích hoạt SKU Chỉ mã nhận dạng cần thiết về Place Details:
Place.Field.ID
Place.Field.PHOTO_METADATAS
Place.Field.RESOURCE_NAME
Các trường sau đây kích hoạt SKU Place Details Essentials:
Place.Field.ADDRESS_COMPONENTS
ADR_FORMAT_ADDRESS
Place.Field.FORMATTED_ADDRESS*
* Sử dụng thay vìPlace.Field.ADDRESS(không dùng nữa).
Place.Field.LOCATION*
* Sử dụng thay vìPlace.Field.LAT_LNG(không dùng nữa).
Place.Field.PLUS_CODE
Place.Field.SHORT_FORMATTED_ADDRESS
Place.Field.TYPES
Place.Field.VIEWPORTCác trường sau đây kích hoạt SKU Place Details Pro:
Place.Field.ACCESSIBILITY_OPTIONS*
* Sử dụng thay vìPlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE(không dùng nữa).
Place.Field.BUSINESS_STATUS
Place.Field.DISPLAY_NAME*
* Sử dụng thay vìPlace.Field.NAME(không dùng nữa).
Place.Field.GOOGLE_MAPS_URI
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URL*
* Sử dụng thay vìPlace.Field.ICON_URL(không dùng nữa).
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.SUB_DESTINATIONS
Place.Field.UTC_OFFSETCác trường sau đây kích hoạt SKU Enterprise về chi tiết địa điểm:
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER*
* Sử dụng thay vìPlace.Field.PHONE_NUMBER(không dùng nữa).
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT*
* Sử dụng thay vìPlace.Field.USER_RATINGS_TOTAL(không dùng nữa).
Place.Field.WEBSITE_URICác trường sau đây kích hoạt SKU Enterprise Plus về chi tiết địa điểm:
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.TAKEOUT
Thông số tùy chọn
Các thông số không bắt buộc cho
FetchPlaceRequest
là:
Mã vùng
Mã vùng dùng để định dạng phản hồi, được chỉ định là giá trị mã CLDR gồm hai ký tự. Không có giá trị mặc định.
Nếu tên quốc gia của trường
Place.Field.FORMATTED_ADDRESStrong phản hồi khớp vớiregionCode, thì mã quốc gia sẽ bị bỏ qua khỏiPlace.Field.FORMATTED_ADDRESS.Hầu hết các mã CLDR đều giống với mã ISO 3166-1, ngoại trừ một số trường hợp đáng chú ý. Ví dụ: ccTLD của Vương quốc Anh là "uk" (.co.uk) trong khi mã ISO 3166-1 là "gb" (về mặt kỹ thuật là cho thực thể "Vương quốc Anh và Bắc Ireland"). Tham số này có thể ảnh hưởng đến kết quả dựa trên luật hiện hành.
Để đặt tham số mã vùng, hãy gọi phương thức
setRegionCode()khi tạo đối tượngFetchPlaceRequest.-
Mã phiên
Mã phiên là chuỗi do người dùng tạo, theo dõi Tự động hoàn thành (Mới) dưới dạng "phiên". Tự động hoàn thành (Mới) sử dụng mã phiên để nhóm các giai đoạn truy vấn và chọn địa điểm của một lượt tìm kiếm tự động hoàn thành của người dùng thành một phiên riêng biệt cho mục đích thanh toán. Mã phiên được truyền vào các lệnh gọi Place Details (Mới) theo sau các lệnh gọi Tự động hoàn thành (Mới). Để biết thêm thông tin, hãy xem bài viết Mã phiên.
Để đặt tham số mã phiên, hãy gọi phương thức
setSessionToken()khi tạo đối tượngFetchPlaceRequest.
Ví dụ về Chi tiết địa điểm
Ví dụ sau đây yêu cầu các trường ID, DISPLAY_NAME và FORMATTED_ADDRESS cho Toà nhà Empire State ở Thành phố New York.
// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);