Chi tiết địa điểm (Mới)

Chọn nền tảng: Android iOS JavaScript Dịch vụ web

SDK Địa điểm dành cho iOS (Mới) cung cấp cho ứng dụng của bạn những thông tin phong phú về địa điểm, bao gồm cả tên và địa chỉ của địa điểm, thông tin địa lý vị trí được chỉ định là toạ độ vĩ độ/kinh độ, kiểu địa điểm (như như hộp đêm, cửa hàng thú cưng, bảo tàng) và nhiều địa điểm khác. Để truy cập vào thông tin này cho một địa điểm cụ thể, bạn có thể sử dụng mã địa điểm, một giá trị nhận dạng ổn định xác định một địa điểm.

Lấy thông tin chi tiết về địa điểm

Chiến lược phát hành đĩa đơn GMSPlace lớp chứa thông tin về một địa điểm cụ thể, bao gồm tất cả các trường dữ liệu được hiển thị trong Trường dữ liệu địa điểm (Mới). Nhận GMSPlace bằng cách gọi GMSPlacesClient fetchPlaceWithRequest:, truyền đối tượng GMSFetchPlaceRequest và loại phương thức gọi lại GMSPlaceResultCallback.

Đối tượng GMSFetchPlaceRequest chỉ định:

  • (Bắt buộc) Mã địa điểm, là giá trị nhận dạng duy nhất cho một địa điểm trên Google Địa điểm và trên Google Maps.
  • (Bắt buộc) Danh sách trường cần trả về trong đối tượng GMSPlace, còn được gọi là fieldMask (mặt nạ trường), như được xác định bởi GMSPlaceProperty. Nếu bạn không chỉ định ít nhất một trường trong danh sách trường hoặc nếu bạn bỏ qua danh sách trường thì lệnh gọi sẽ trả về lỗi.
  • (Không bắt buộc) Mã vùng dùng để định dạng câu trả lời.
  • (Không bắt buộc) Mã thông báo phiên được dùng để kết thúc một phiên Tự động hoàn thành (Mới).

Tạo yêu cầu Chi tiết địa điểm

Ví dụ này chọn một địa điểm theo mã nhận dạng, truyền các tham số sau:

  • Mã địa điểm là ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Danh sách trường chỉ định trả về tên địa điểm và URL trang web.
  • GMSPlaceResultCallback để xử lý kết quả.

API gọi phương thức gọi lại được chỉ định, truyền vào một giá trị GMSPlace . Nếu không tìm thấy địa điểm, thì đối tượng địa điểm là không.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

SDK Swift địa điểm dành cho iOS (Xem trước)

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Phản hồi về Chi tiết địa điểm

Thông tin chi tiết về địa điểm trả về một giá trị a Đối tượng GMSPlace chứa thông tin chi tiết về địa điểm. Chỉ những trường được chỉ định trong danh sách trường mới được điền sẵn vào đối tượng GMSPlace.

Xem trạng thái mở cửa

Đối tượng GMSPlacesClient chứa một hàm thành phần có tên là isOpenWithRequest (isOpenRequest trong Swift và isPlaceOpenRequest trong GooglePlacesSwift) sẽ trả về một phản hồi cho biết địa điểm hiện có mở cửa hay không, dựa trên thời gian được chỉ định trong cuộc gọi.

Phương thức này lấy một đối số duy nhất thuộc loại GMSPlaceIsOpenWithRequest chứa:

  • Đối tượng GMSPlace hoặc một chuỗi chỉ định mã địa điểm. Để biết thêm thông tin về cách tạo đối tượng Địa điểm với các trường cần thiết, hãy xem phần Thông tin chi tiết về địa điểm.
  • Đối tượng NSDate (Obj-C) hoặc Date (Swift) (không bắt buộc) chỉ định thời gian bạn muốn kiểm tra. Nếu bạn không chỉ định thời gian, giá trị mặc định sẽ là ngay bây giờ.
  • Phương thức GMSPlaceOpenStatusResponseCallback để xử lý phản hồi.
  • &gt;

Phương thức GMSPlaceIsOpenWithRequest yêu cầu bạn phải đặt các trường sau trong đối tượng GMSPlace:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Nếu các trường này không được cung cấp trong đối tượng Địa điểm hoặc nếu bạn truyền mã địa điểm, thì phương thức này sẽ sử dụng GMSPlacesClient GMSFetchPlaceRequest: để tìm nạp các trường đó.

isOpenWithRequest câu trả lời

isOpenWithRequest trả về một đối tượng GMSPlaceIsOpenResponse chứa giá trị boolean có tên status. Giá trị này cho biết doanh nghiệp đang mở cửa, đã đóng cửa hay không xác định được trạng thái.

Ngôn ngữ Giá trị nếu mở Giá trị nếu đóng Giá trị nếu trạng thái không xác định
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (Bản xem trước) true false nil

Thanh toán cho isOpenWithRequest

Ví dụ: Tạo yêu cầu GMSPlaceIsOpenWithRequest

Ví dụ sau đây cho thấy cách khởi tạo GMSPlaceIsOpenWithRequest trong đối tượng GMSPlace hiện có.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

Thông số bắt buộc

Sử dụng đối tượng GMSFetchPlaceRequest để chỉ định các tham số bắt buộc.

Mã địa điểm

ID địa điểm được sử dụng trong SDK Địa điểm dành cho iOS là giống với giá trị nhận dạng được dùng trong Places API, Places SDK dành cho Android và các API khác của Google. Mỗi mã địa điểm chỉ có thể tham chiếu đến một địa điểm, nhưng một địa điểm có thể có nhiều mã địa điểm.

Có một số trường hợp có thể khiến một địa điểm nhận được mã địa điểm mới. Ví dụ: điều này có thể xảy ra nếu một doanh nghiệp chuyển đến địa điểm mới.

Khi bạn yêu cầu một địa điểm bằng cách chỉ định một mã địa điểm, bạn có thể tự tin rằng bạn sẽ luôn nhận được cùng một nơi trong phản hồi (nếu địa điểm đó vẫn tồn tại). Tuy nhiên, lưu ý rằng phản hồi có thể chứa mã địa điểm khác với thông tin trong yêu cầu của bạn.

Danh sách trường

Khi bạn yêu cầu thông tin chi tiết về địa điểm, bạn phải chỉ định dữ liệu để trả về trong đối tượng GMSPlace cho địa điểm dưới dạng mặt nạ trường. Để xác định mặt nạ trường chuyển một mảng các giá trị từ GMSPlaceProperty cho đối tượng GMSFetchPlaceRequest. Tạo mặt nạ cho trường là một phương pháp thiết kế tốt để đả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 mất thời gian xử lý và các khoản phí thanh toán không cần thiết.

Chỉ định một hoặc nhiều trường sau:

  • Các trường sau đây kích hoạt SKU Thông tin chi tiết về địa điểm (chỉ mã nhận dạng):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Các trường sau đây kích hoạt SKU Thông tin chi tiết về địa điểm (chỉ vị trí):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Các trường sau đây kích hoạt SKU Thông tin chi tiết về địa điểm (Cơ bản):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Các trường sau đây kích hoạt SKU Thông tin chi tiết về địa điểm (Nâng cao):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Các trường sau đây kích hoạt SKU Thông tin chi tiết về địa điểm (Ưu tiên):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

Ví dụ sau truyền danh sách hai giá trị trường để chỉ định rằng đối tượng GMSPlace được yêu cầu trả về sẽ chứa Các trường nameplaceID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

SDK Swift địa điểm dành cho iOS (Xem trước)

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Thông số tùy chọn

Sử dụng đối tượng GMSFetchPlaceRequest để chỉ định các tham số không bắt buộc.

regionCode

Mã khu vực dùng để định dạng phản hồi, được chỉ định dưới dạng giá trị mã CLDR gồm hai ký tự. Tham số này cũng có thể có hiệu ứng sai lệch trên kết quả tìm kiếm. Không có giá trị mặc định.

Nếu tên quốc gia của trường địa chỉ trong phản hồi khớp với mã vùng, mã quốc gia bị bỏ khỏi địa chỉ.

Hầu hết mã CLDR đều giống với mã ISO 3166-1, với một số ngoại lệ đáng chú ý. Ví dụ: ccTLD (miền cấp cao nhất theo mã quốc gia) của Vương quốc Anh là "Vương quốc Anh" (.co.uk) trong khi mã ISO 3166-1 của trang web là "gb" (về mặt kỹ thuật cho pháp nhân "Vương quốc Anh và Bắc Ireland"). Tuỳ theo luật hiện hành, thông số này có thể ảnh hưởng đến kết quả.

sessionToken

Mã thông báo phiên là các chuỗi do người dùng tạo theo dõi tính năng Tự động hoàn thành (Mới) gọi là "phiên". Tính năng Tự động hoàn thành (Mới) sử dụng mã thông báo phiên để nhóm các giai đoạn truy vấn và chọn địa điểm trong tính năng tự động hoàn thành tìm kiếm của người dùng thành một phiên riêng biệt cho mục đích thanh toán. Mã thông báo phiên được chuyển vào Chi tiết địa điểm (Mới) những lệnh gọi theo sau lệnh gọi Tự động hoàn thành (Mới). Để biết thêm thông tin, hãy xem Mã thông báo phiên.

Hiển thị thuộc tính trong ứng dụng của bạn

Khi ứng dụng của bạn hiển thị thông tin thu được từ GMSPlacesClient! chẳng hạn như ảnh và bài đánh giá, thì ứng dụng cũng phải cho thấy các thông tin ghi nhận sự đóng góp cần thiết.

Ví dụ: thuộc tính reviews của đối tượng GMSPlacesClient chứa một mảng tối đa năm GMSPlaceReview . Mỗi đối tượng GMSPlaceReview có thể chứa thông tin ghi nhận sự đóng góp và thông tin ghi nhận tác giả. Nếu hiển thị bài đánh giá trong ứng dụng của mình, thì bạn cũng phải hiển thị mọi thuộc tính hoặc tác giả phân bổ giá trị đóng góp.

Để biết thêm thông tin, hãy xem tài liệu về phân bổ.