รายละเอียดสถานที่

เลือกแพลตฟอร์ม: Android iOS JavaScript บริการเว็บ

Places SDK สําหรับ iOS ช่วยให้แอปมีข้อมูลแบบสมบูรณ์เกี่ยวกับสถานที่ เช่น ชื่อและที่อยู่ของสถานที่ ตําแหน่งทางภูมิศาสตร์ที่ระบุเป็นพิกัดละติจูด/ลองจิจูด ประเภทของสถานที่ (เช่น ไนท์คลับ ร้านขายสัตว์เลี้ยง พิพิธภัณฑ์ พิพิธภัณฑ์) และอื่นๆ หากต้องการเข้าถึงข้อมูลของสถานที่ที่เฉพาะเจาะจง คุณสามารถใช้รหัสสถานที่ซึ่งเป็นตัวระบุแบบคงที่ที่จะระบุสถานที่ที่ไม่ซ้ํากันได้

รายละเอียดสถานที่

ชั้นเรียน GMSPlace ให้ข้อมูลเกี่ยวกับสถานที่ที่เจาะจง คุณระงับออบเจ็กต์ GMSPlace ได้ด้วยวิธีต่อไปนี้

เมื่อขอสถานที่ คุณต้องระบุประเภทข้อมูลสถานที่ที่จะส่งคืน ซึ่งในการดําเนินการนี้ ให้ส่ง GMSPlaceField โดยระบุประเภทข้อมูลที่จะแสดงผล ซึ่งเป็นข้อควรพิจารณาที่สําคัญ เนื่องจากจะส่งผลต่อต้นทุนสําหรับคําขอแต่ละรายการ

เนื่องจากผลการค้นหาข้อมูลสถานที่ต้องไม่ว่างเปล่า ระบบจะส่งเฉพาะผลลัพธ์ที่มีข้อมูลเท่านั้น (เช่น หากสถานที่ที่ขอไม่มีรูปภาพ ช่อง photos จะไม่แสดงในผลลัพธ์)

ตัวอย่างต่อไปนี้ส่งผ่านรายการค่าในช่อง 2 รายการเพื่อระบุข้อมูลที่คําขอแสดงผล

Swift

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

      // Specify the place data types to return.
      let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
      UInt(GMSPlaceField.placeID.rawValue))!
  

Objective-C

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

      // Specify the place data types to return.
      GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
  

ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องสถานที่ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกเก็บเงินคําขอข้อมูลสถานที่ได้ที่การใช้งานและการเรียกเก็บเงิน

คลาส GMSPlace อาจมีข้อมูลสถานที่ต่อไปนี้

  • name – ชื่อสถานที่
  • placeID – ตัวระบุข้อความสําหรับสถานที่ อ่านเพิ่มเติมเกี่ยวกับรหัสสถานที่ในส่วนอื่นๆ ของหน้านี้
  • coordinate – สถานที่ตั้งทางภูมิศาสตร์ของสถานที่ ซึ่งระบุเป็นพิกัดละติจูดและลองจิจูด
  • phoneNumber – หมายเลขโทรศัพท์ของสถานที่ในรูปแบบระหว่างประเทศ
  • formattedAddress – ที่อยู่ที่มนุษย์อ่านได้ของสถานที่นี้

    บ่อยครั้งที่ที่อยู่นี้เทียบเท่ากับที่อยู่ไปรษณีย์ โปรดทราบว่าบางประเทศ เช่น สหราชอาณาจักร ไม่อนุญาตการเผยแพร่ที่อยู่ทางไปรษณีย์จริง เนื่องจากมีข้อจํากัดด้านการอนุญาตให้ใช้สิทธิ

    ที่อยู่ที่จัดรูปแบบจะประกอบด้วยส่วนประกอบที่อยู่อย่างน้อย 1 รายการ ตัวอย่างเช่น ที่อยู่ "111 8th Avenue, New York, NY" ประกอบด้วยองค์ประกอบต่อไปนี้ "111" (หมายเลขถนน) "8th Avenue" (เส้นทาง) "นิวยอร์ก" (เมือง) และ "NY" (รัฐสหรัฐอเมริกา)

    อย่าแยกวิเคราะห์ที่อยู่ในรูปแบบโดยใช้โปรแกรม คุณควรใช้คอมโพเนนต์ที่อยู่แต่ละรายการแทน โดยการตอบสนอง API จะมีอยู่นอกเหนือจากช่องที่อยู่ที่จัดรูปแบบแล้ว

  • openingHours – เวลาเปิดทําการของสถานที่ (ตามที่ GMSOpeningHours เป็นตัวแทน) โทรหา GMSOpeningHours.weekdayText เพื่อดูรายการสตริงที่แปลของเวลาทําการแต่ละวันในสัปดาห์ โทรหา GMSOpeningHours.Periods เพื่อส่งคืนรายการ GMSPeriod พร้อมรายละเอียดเพิ่มเติมซึ่งเทียบเท่ากับข้อมูลที่ weekdayText ให้ไว้ หมายเหตุ: หากสถานที่เปิดทําการอยู่เสมอ ระยะเวลาจะแสดงเป็นวันอาทิตย์ตอนเที่ยงคืน และ closeEvent ไม่มีข้อมูล
  • addressComponents – อาร์เรย์ของออบเจ็กต์ GMSAddressComponent ที่แสดงคอมโพเนนต์ของที่อยู่สําหรับสถานที่ คอมโพเนนต์เหล่านี้มีไว้เพื่อวัตถุประสงค์ในการแยกข้อมูลที่มีโครงสร้างเกี่ยวกับที่อยู่ของสถานที่ เช่น พบเมืองที่สถานที่ตั้งอยู่ อย่าใช้คอมโพเนนต์เหล่านี้สําหรับการจัดรูปแบบที่อยู่ ให้ใช้พร็อพเพอร์ตี้ formattedAddress ซึ่งมีที่อยู่ในรูปแบบที่แปลแล้วแทน

    ข้อเท็จจริงต่อไปนี้เกี่ยวกับอาร์เรย์ addressComponents

    • อาร์เรย์ของคอมโพเนนต์ที่อยู่อาจมีคอมโพเนนต์มากกว่า formattedAddress
    • อาร์เรย์ไม่ได้รวมเอนทิตีทางการเมืองทั้งหมดที่มีที่อยู่ นอกเหนือจากเอนทิตีที่รวมอยู่ใน formattedAddress
    • และไม่รับประกันว่ารูปแบบการตอบกลับจะเหมือนเดิมระหว่างคําขอ โดยเฉพาะอย่างยิ่ง จํานวน addressComponents อาจแตกต่างกันไปตามที่อยู่ที่ขอและอาจเปลี่ยนแปลงได้เมื่อเวลาผ่านไปสําหรับที่อยู่เดียวกัน คอมโพเนนต์สามารถเปลี่ยนตําแหน่งในอาร์เรย์ ประเภทของคอมโพเนนต์สามารถเปลี่ยนได้ คอมโพเนนต์ใดอาจหายไปในการตอบสนองในภายหลัง
  • userRatingsTotal – แสดงจํานวนรีวิวที่ได้รับคะแนนของสถานที่

คลาส GMSPlace มีฟังก์ชันสมาชิกดังต่อไปนี้

  • isOpen คํานวณว่าสถานที่นั้นๆ เปิดอยู่ในช่วงเวลาที่กําหนดหรือไม่ โดยอิงตาม openingHours และ UTCOffsetMinutes รวมถึงวันที่และเวลาปัจจุบัน
  • isOpenAtDate คํานวณว่าสถานที่เปิดทําการในวันที่หนึ่งๆ ตาม openingHours และ UTCOffsetMinutes รวมถึงวันที่และเวลาปัจจุบัน
  • เมื่อใช้ฟังก์ชันเหล่านี้เพื่อรับเวลาเปิดและ/หรือวันที่ คําขอ fetchPlaceFromPlaceID: หรือ findPlaceLikelihoodsFromUserLocationWithPlaceFields: เดิมต้องระบุทั้งช่อง GMSPlaceFieldOpeningHours และ GMSPlaceFieldUTCOffsetMinutes หากช่องใดช่องหนึ่งหายไป ออบเจ็กต์ GMSPlace ที่ได้จะไม่มีเวลาหรือวันที่เปิดทําการ และการโทรจะส่งกลับ GMSPlaceOpenStatusUnknown เพื่อให้ได้ช่องที่แม่นยํา ให้ขอช่อง GMSPlaceFieldBusinessStatus และ GMSPlaceFieldUTCOffsetMinutes ในคําขอสถานที่ต้นฉบับ หากไม่ได้ส่งคําขอ จะถือว่าธุรกิจเปิดทําการอยู่

    ดูวิดีโอนี้เกี่ยวกับวิธีใช้ isOpen พร้อมรายละเอียดสถานที่

รับสถานที่ตามบัตรประจําตัว

รหัสสถานที่เป็นตัวระบุแบบข้อความที่ระบุสถานที่ได้อย่างแน่ชัด ใน Places SDK สําหรับ iOS คุณสามารถเรียกรหัสของสถานที่จากออบเจ็กต์ GMSPlace ได้ คุณสามารถจัดเก็บรหัสสถานที่และใช้เพื่อเรียกข้อมูลออบเจ็กต์ GMSPlace อีกครั้งในภายหลังได้

หากต้องการรับสถานที่ตามรหัส ให้เรียกใช้ GMSPlacesClient fetchPlaceFromPlaceID: โดยส่งพารามิเตอร์ต่อไปนี้

  • สตริงที่มีรหัสสถานที่
  • GMSPlaceField อย่างน้อย 1 รายการโดยระบุประเภทข้อมูลที่ต้องการแสดง
  • โทเค็นเซสชันหากมีการเรียกเพื่อสรุปการเติมข้อความอัตโนมัติ มิเช่นนั้น ให้ส่งผ่าน
  • GMSPlaceResultCallback เพื่อจัดการผลลัพธ์

API จะเรียกใช้เมธอดเรียกกลับที่ระบุ และส่งผ่านในออบเจ็กต์ GMSPlace หากไม่พบสถานที่นั้น ออบเจ็กต์สถานที่จะเป็นค่าว่าง

Swift

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

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

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

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

แสดงการระบุแหล่งที่มาในแอป

เมื่อแอปแสดงข้อมูลที่ได้รับจาก GMSPlacesClient lookUpPlaceID:callback: แอปต้องแสดงการระบุแหล่งที่มาด้วย ดูเอกสารประกอบเกี่ยวกับการระบุแหล่งที่มา

ข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่

รหัสสถานที่ที่ใช้ใน Places SDK สําหรับ iOS คือตัวระบุเดียวกันกับที่ใช้ใน Places API, Places SDK สําหรับ Android และ Google API อื่นๆ

รหัสสถานที่แต่ละแห่งหมายถึงสถานที่เพียงแห่งเดียว แต่สถานที่ 1 แห่งจะมีรหัสสถานที่ได้มากกว่า 1 รายการ

มีบางกรณีที่อาจทําให้สถานที่ได้รับรหัสสถานที่ใหม่ เช่น กรณีนี้อาจเกิดขึ้นหากธุรกิจย้ายไปยังสถานที่ตั้งใหม่

เมื่อคุณขอสถานที่ด้วยการระบุรหัสสถานที่ คุณมั่นใจได้เลยว่าจะได้รับที่เดียวกันในคําตอบเสมอ (หากสถานที่ดังกล่าวยังคงอยู่) อย่างไรก็ตาม โปรดทราบว่าการตอบกลับอาจมีรหัสสถานที่ที่แตกต่างจากรหัสในคําขอ

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมรหัสสถานที่