เติมข้อความอัตโนมัติ (ใหม่)

บริการเติมข้อความอัตโนมัติ (ใหม่) คือบริการบนเว็บที่แสดงผลการคาดคะเนสถานที่และการคาดคะเนการค้นหาเพื่อตอบสนองต่อคำขอ HTTP ในคำขอ ให้ระบุสตริงการค้นหาข้อความและขอบเขตทางภูมิศาสตร์ที่ควบคุมพื้นที่การค้นหา

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

การตอบสนองจาก API เติมข้อความอัตโนมัติ (ใหม่) อาจมีการคาดคะเน 2 ประเภทดังนี้

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

ตัวอย่างเช่น คุณเรียก API โดยใช้เป็นสตริงที่มีอินพุตของผู้ใช้บางส่วนว่า "Sicilian piz" โดยมีพื้นที่การค้นหาจำกัดอยู่ที่ซานฟรานซิสโก แคลิฟอร์เนีย จากนั้น การตอบกลับจะประกอบด้วยรายการการคาดคะเนสถานที่ที่ตรงกับสตริงการค้นหาและพื้นที่ที่ค้นหา เช่น ร้านอาหารชื่อ "Sicilian Pizza Kitchen" พร้อมด้วยรายละเอียดเกี่ยวกับสถานที่

การคาดคะเนสถานที่ที่แสดงผลนี้ออกแบบมาเพื่อนำเสนอต่อผู้ใช้เพื่อช่วยในการเลือกสถานที่ที่ต้องการ คุณสามารถส่งคำขอรายละเอียดสถานที่ (ใหม่) เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการคาดคะเนสถานที่ที่แสดงกลับมา

การตอบสนองยังมีรายการการคาดคะเนการค้นหาที่ตรงกับสตริงการค้นหาและพื้นที่การค้นหา เช่น "พิซซ่าและพาสต้า Sicilian" การคาดคะเนการค้นหาแต่ละรายการในการตอบสนองจะรวมช่อง text ที่มีสตริงการค้นหาข้อความที่แนะนำ ให้ใช้สตริงนั้นเป็นอินพุตสำหรับการค้นหาข้อความ (ใหม่) เพื่อทำการค้นหาแบบละเอียดมากขึ้น

คำขอการเติมข้อความอัตโนมัติ (ใหม่)

คำขอการเติมข้อความอัตโนมัติ (ใหม่) คือคำขอ HTTP POST ไปยัง URL ในรูปแบบดังนี้

https://places.googleapis.com/v1/places:autocomplete

ส่งพารามิเตอร์ทั้งหมดในเนื้อหาคำขอ JSON หรือในส่วนหัวเป็นส่วนหนึ่งของคำขอ POST เช่น

curl -X POST -d '{
  "input": "pizza",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

ส่งคำขอโดยใช้การเติมข้อความอัตโนมัติ (ใหม่)

Places API รองรับ API เติมข้อความอัตโนมัติและการเติมข้อความอัตโนมัติในข้อความค้นหาที่มีอยู่ หากคุณคุ้นเคยกับ API เหล่านี้ ฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) เวอร์ชันแสดงตัวอย่างจะทำการเปลี่ยนแปลงต่อไปนี้

  • การเติมข้อความอัตโนมัติใหม่ใช้คำขอ HTTP POST ส่งพารามิเตอร์ในเนื้อหาคำขอหรือในส่วนหัวเป็นส่วนหนึ่งของคำขอ HTTP POST ในทางตรงกันข้าม เมื่อใช้ API ที่มีอยู่ คุณจะส่งผ่านพารามิเตอร์ของ URL โดยใช้คำขอ HTTP GET ได้
  • การเติมข้อความอัตโนมัติใหม่รองรับทั้งโทเค็น API และโทเค็น OAuth เป็นกลไกการตรวจสอบสิทธิ์
  • ในการเติมข้อความอัตโนมัติใหม่รองรับเฉพาะ JSON เป็นรูปแบบการตอบสนองเท่านั้น

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

พารามิเตอร์ปัจจุบัน พารามิเตอร์ใหม่ Notes
components includedRegionCodes
language languageCode
location locationBias
ipbias หากคุณไม่ใส่ทั้ง locationBias และ locationRestriction จะทำให้ API ใช้การให้น้ำหนัก IP โดยค่าเริ่มต้น
offset inputOffset
radius locationBias หรือ locationRestriction
region regionCode
stricbounds locationRestriction
sessiontoken sessionToken
types includedPrimaryTypes

ขีดจำกัดการใช้งาน

ในระหว่างรุ่นตัวอย่าง คุณจะจำกัดให้สร้างคำค้นหาได้สูงสุด 600 คำต่อนาทีต่อโปรเจ็กต์

ตัวเลือกการสนับสนุนสำหรับรุ่นพรีวิว

แม้ว่า Google จะไม่มีภาระหน้าที่ในการให้การสนับสนุนสำหรับเวอร์ชัน ฟีเจอร์ หรือฟังก์ชันการทำงานของบริการ เราจะพิจารณาคำขอในขั้นตอนการพัฒนาเหล่านี้แยกเป็นรายกรณี

  • เวอร์ชันก่อนเปิดตัวจะไม่อยู่ภายใต้ SLA ของ Google Maps Platform
  • ขอแนะนำให้ใช้กลไกสำรอง โดยเฉพาะอย่างยิ่งหากคุณใช้เวอร์ชันก่อนเผยแพร่ในสภาพแวดล้อมการใช้งานจริง ตัวอย่างสถานการณ์สำรอง ได้แก่ การใช้งานเกินโควต้า รหัสการตอบกลับที่ไม่คาดคิดและเวลาในการตอบสนอง หรือการตอบกลับที่ไม่คาดคิดเมื่อเทียบกับการเติมข้อความอัตโนมัติที่มีอยู่

คุณสามารถใช้เครื่องติดตามปัญหาเพื่อขอฟีเจอร์ใหม่หรือแนะนำการแก้ไขฟีเจอร์ที่มีอยู่ โปรดอธิบายฟังก์ชันการทำงานเฉพาะที่คุณต้องการให้ เพิ่มเข้ามา รวมถึงเหตุผลที่คุณคิดว่ามีความสำคัญ หากเป็นไปได้ ให้ใส่รายละเอียดเฉพาะเกี่ยวกับกรณีการใช้งานและโอกาสใหม่ๆ ที่ฟีเจอร์ดังกล่าวจะช่วยได้ ดังนี้

หากมีข้อสงสัยอื่นๆ เกี่ยวกับฟีเจอร์ต่างๆ โปรดส่งอีเมลไปที่ newplacesapi@google.com

เกี่ยวกับคำตอบ

การเติมข้อความอัตโนมัติ (ใหม่) จะแสดงผลออบเจ็กต์ JSON เป็นการตอบกลับ คำตอบ:

  • อาร์เรย์ suggestions จะมีตำแหน่งและคำค้นหาที่คาดการณ์ไว้ทั้งหมดตามลำดับที่พิจารณาจากความเกี่ยวข้องที่รับรู้ได้ สถานที่แต่ละแห่งจะแสดงด้วยช่อง placePrediction และคำค้นหาแต่ละรายการจะแสดงด้วยช่อง queryPrediction
  • ช่อง placePrediction มีข้อมูลโดยละเอียดเกี่ยวกับการคาดคะเนสถานที่แห่งเดียว รวมถึงรหัสสถานที่และคำอธิบายข้อความ
  • ช่อง queryPrediction มีข้อมูลโดยละเอียดเกี่ยวกับการคาดการณ์การค้นหารายการเดียว

ออบเจ็กต์ JSON ที่ครบถ้วนอยู่ในรูปแบบต่อไปนี้

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }]
        },
      ...
    },
    {
      "queryPrediction": {
        "text": {
          "text": "Amoeba Music",
          "matches": [
            {
              "endOffset": 6
            }]
        },
        ...
    }
  ...]
}

พารามิเตอร์ที่จำเป็น

  • อินพุต

    สตริงข้อความที่จะค้นหา ระบุคำเต็มและสตริงย่อย ชื่อสถานที่ ที่อยู่ และโค้ด Plus บริการเติมข้อความอัตโนมัติ (ใหม่) จะแสดงตัวเลือกที่ตรงกันตามสตริงนี้และผลลัพธ์คำสั่งซื้อตามความเกี่ยวข้องที่รับรู้ได้

พารามิเตอร์ที่ไม่บังคับ

  • includedPrimaryTypes

    สถานที่จะมีประเภทหลักได้เพียงประเภทเดียวจากประเภทตาราง ก หรือตาราง ข ที่เชื่อมโยงกับสถานที่ดังกล่าว ตัวอย่างเช่น ประเภทหลักอาจเป็น "mexican_restaurant" หรือ "steak_house"

    โดยค่าเริ่มต้น API จะแสดงผลตำแหน่งทั้งหมดโดยอิงตามพารามิเตอร์ input โดยไม่คำนึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่ จำกัดผลการค้นหาให้เป็นประเภทหลักหรือประเภทหลักที่กำหนดโดยการส่งพารามิเตอร์ includedPrimaryTypes

    ใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทจากตาราง A หรือตาราง B ได้สูงสุด 5 ค่า สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุไว้ค่าใดค่าหนึ่งจึงจะรวมไว้ในคำตอบ

    คำขอถูกปฏิเสธโดยมีข้อผิดพลาด INVALID_REQUEST ในกรณีต่อไปนี้

    • มีการระบุมากกว่าห้าประเภท
    • มีการระบุประเภทที่ไม่รู้จัก
  • includeQueryPredictions

    หากเป็น true คำตอบจะมีทั้งการคาดคะเนสถานที่และคำค้นหา ค่าเริ่มต้นคือ false ซึ่งหมายความว่าการตอบกลับจะมีเฉพาะการคาดคะเนสถานที่เท่านั้น

  • includedRegionCodes

    รวมเฉพาะผลการค้นหาจากรายการภูมิภาคที่ระบุ โดยระบุเป็นอาร์เรย์ของค่า 2 อักขระสำหรับ ccTLD ("โดเมนระดับบนสุด") ไม่เกิน 15 รายการ หากไม่ระบุ ระบบจะไม่ใช้ข้อจำกัดกับคำตอบ เช่น หากต้องการจำกัดภูมิภาคให้มีเฉพาะเยอรมนีและฝรั่งเศส ให้ทำดังนี้

        "includedRegionCodes": ["de", "fr"]

    หากคุณระบุทั้ง locationRestriction และ includedRegionCodes ผลลัพธ์จะอยู่ในบริเวณจุดตัดของการตั้งค่า 2 รายการ

  • inputOffset

    ออฟเซ็ตอักขระ Unicode แบบเลข 0 ที่ระบุตำแหน่งเคอร์เซอร์ใน input ตำแหน่งเคอร์เซอร์อาจส่งผลต่อการคาดคะเนที่จะแสดงผล หากเว้นว่างไว้ ระบบจะใช้ความยาวเริ่มต้น input

  • languageCode

    ภาษาที่ต้องการแสดงผลการค้นหา ผลการค้นหาอาจเป็นภาษาผสม หากภาษาที่ใช้ใน input ต่างจากค่าที่ languageCode ระบุไว้ หรือหากสถานที่ที่ส่งคืนไม่มีคำแปลจากภาษาท้องถิ่นเป็น languageCode

    • คุณต้องใช้รหัสภาษา IETF-BCP-47 เพื่อระบุภาษาที่ต้องการ
    • หากไม่ระบุ languageCode แล้ว API จะใช้ค่าที่ระบุในส่วนหัว Accept-Language หากไม่ได้ระบุไว้ทั้งคู่ ค่าเริ่มต้นจะเป็น en หากคุณระบุรหัสภาษาที่ไม่ถูกต้อง API จะแสดงข้อผิดพลาด INVALID_ARGUMENT
    • ภาษาที่ต้องการมีอิทธิพลเล็กน้อยต่อชุดผลลัพธ์ที่ API เลือกที่จะแสดงผล และลำดับการแสดงผล ซึ่งจะส่งผลต่อความสามารถของ API ในการแก้ไขข้อผิดพลาดด้านการสะกดด้วย
    • API จะพยายามระบุที่อยู่ที่อ่านได้สำหรับทั้งผู้ใช้และประชากรในพื้นที่ ในขณะเดียวกันก็สะท้อนให้เห็นถึงข้อมูลจากผู้ใช้ไปพร้อมกัน การคาดคะเนสถานที่จะมีการจัดรูปแบบแตกต่างกันตามอินพุตของผู้ใช้ในแต่ละคำขอ
      • ระบบจะเลือกคำที่ตรงกันในพารามิเตอร์ input ก่อน โดยใช้ชื่อที่สอดคล้องกับค่ากำหนดภาษาที่ระบุโดยพารามิเตอร์ languageCode หากมี แต่จะใช้ชื่อที่ตรงกับการป้อนข้อมูลของผู้ใช้มากที่สุด
      • ที่อยู่จะได้รับการจัดรูปแบบเป็นภาษาท้องถิ่นในสคริปต์ที่ผู้ใช้อ่านได้เมื่อเป็นไปได้ หลังจากที่เลือกคำที่ตรงกันให้ตรงกับคำในพารามิเตอร์ input แล้วเท่านั้น
      • ระบบจะแสดงที่อยู่อื่นๆ ทั้งหมดในภาษาที่ต้องการ หลังจากเลือกคำที่ตรงกันเพื่อจับคู่กับคำในพารามิเตอร์ input แล้ว หากไม่มีชื่อในภาษาที่ต้องการ API จะใช้รายการที่ตรงกันที่ใกล้เคียงที่สุด
  • อคติหรือข้อจำกัดตำแหน่ง

    คุณระบุ locationBias หรือ locationRestriction ได้ แต่จะระบุทั้ง 2 อย่างเพื่อกำหนดพื้นที่การค้นหาไม่ได้ ให้คิดว่า locationRestriction เป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ และ locationBias เป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ใกล้ แต่อยู่นอกพื้นที่ได้

    • locationBias

      ระบุพื้นที่ที่จะค้นหา ตำแหน่งนี้ทำหน้าที่เป็นการให้น้ำหนักพิเศษซึ่งจะทำให้แสดงผลลัพธ์ที่อยู่รอบๆ ตำแหน่งที่ระบุได้ รวมถึงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ

    • locationRestriction

      ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์นอกพื้นที่ที่ระบุ

    ระบุภูมิภาค locationBias หรือ locationRestriction เป็นวิวพอร์ตสี่เหลี่ยมผืนผ้าหรือเป็นวงกลม

    • วงกลมจะกำหนดโดยจุดศูนย์กลางและรัศมีเป็นเมตร รัศมีต้องอยู่ระหว่าง 0.0 ถึง 50, 000.0 ค่าเริ่มต้นคือ 0.0 สำหรับ locationRestriction คุณต้องกำหนดรัศมีเป็นค่าที่มากกว่า 0.0 Otherwsie คำขอไม่แสดงผลลัพธ์

      เช่น

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • สี่เหลี่ยมผืนผ้าคือวิวพอร์ตละติจูด-ลองจิจูดที่แสดงเป็นเส้นทแยงมุม 2 จุดตรงข้าม low และจุดสูง วิวพอร์ตถือเป็นพื้นที่แบบปิด ซึ่งหมายความว่ามีขอบเขตของวิวพอร์ตรวมอยู่ด้วย ขอบเขตละติจูดต้องอยู่ในช่วง -90 ถึง 90 องศา และขอบเขตลองจิจูดต้องอยู่ในช่วง -180 ถึง 180 องศา

      • หาก low = high วิวพอร์ตจะประกอบด้วยจุดเดียวนั้น
      • หาก low.longitude > high.longitude ช่วงลองจิจูดจะกลับกัน (วิวพอร์ตข้ามเส้นลองจิจูด 180 องศา)
      • หาก low.longitude = -180 องศาและ high.longitude = 180 องศา วิวพอร์ตจะรวมลองจิจูดทั้งหมด
      • หาก low.longitude = 180 องศาและ high.longitude = -180 องศา ช่วงลองจิจูดจะว่างเปล่า

      ต้องระบุทั้ง low และ high และต้องไม่ว่างเปล่าในช่องที่เป็นตัวแทน วิวพอร์ตที่ว่างเปล่าจะทำให้เกิดข้อผิดพลาด

      ตัวอย่างเช่น วิวพอร์ตนี้รวมนครนิวยอร์กทั้งหมดดังนี้

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • ต้นกำเนิด

    จุดเริ่มต้นที่จะคำนวณระยะทางตรงถึงจุดหมาย (แสดงผลเป็น distanceMeters) หากไม่ระบุค่านี้ ระบบจะไม่แสดงผลระยะทางจากเส้นตรง ต้องระบุเป็นพิกัดละติจูดและลองจิจูด

    "origin": {
        "latitude": 40.477398,
        "longitude": -74.259087
    }
  • regionCode

    รหัสภูมิภาคที่ใช้ในการจัดรูปแบบการตอบกลับ ซึ่งระบุเป็นค่าอักขระ 2 ตัวของ ccTLD ("โดเมนระดับบนสุด") รหัส ccTLD ส่วนใหญ่เหมือนกับรหัส ISO 3166-1 แต่มีข้อยกเว้นบางประการที่สำคัญ เช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ส่วนรหัส ISO 3166-1 คือ "gb" (ทางเทคนิคสำหรับเอนทิตีของ "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")

    หากคุณระบุรหัสภูมิภาคไม่ถูกต้อง API จะแสดงข้อผิดพลาด INVALID_ARGUMENT พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง

  • sessionToken

    โทเค็นเซสชันเป็นสตริงที่ผู้ใช้สร้างขึ้นซึ่งติดตามการเรียกการเติมข้อความอัตโนมัติ (ใหม่) เป็น "เซสชัน" การเติมข้อความอัตโนมัติ (ใหม่) ใช้โทเค็นเซสชันเพื่อจัดกลุ่มคำค้นหาและขั้นการเลือกของการค้นหาแบบเติมข้อความอัตโนมัติของผู้ใช้เป็นเซสชันที่แยกจากกันเพื่อวัตถุประสงค์ในการเรียกเก็บเงิน ดูข้อมูลเพิ่มเติมได้ที่โทเค็นของเซสชัน

ตัวอย่างการเติมข้อความอัตโนมัติ (ใหม่)

ใช้ locationRestriction และ locationBias

API ใช้การให้น้ำหนัก IP โดยค่าเริ่มต้นเพื่อควบคุมพื้นที่การค้นหา เมื่อใช้การให้น้ำหนัก IP, API จะใช้ที่อยู่ IP ของอุปกรณ์เพื่อให้น้ำหนักกับผลลัพธ์ คุณเลือกใช้ locationRestriction หรือ locationBias ได้ แต่จะใช้ทั้ง 2 อย่างเพื่อระบุพื้นที่ที่จะค้นหาไม่ได้

locationRestriction ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์นอกพื้นที่ที่ระบุ ในตัวอย่างต่อไปนี้ คุณใช้ locationRestriction เพื่อจำกัดคำขอให้อยู่ในวงกลมขนาด 5, 000 เมตรในรัศมีศูนย์กลางของซานฟรานซิสโก

curl -X POST -d '{
  "input": "Amoeba",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

ผลลัพธ์ทั้งหมดจากภายในพื้นที่ที่ระบุจะอยู่ในอาร์เรย์ suggestions:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "store",
          "point_of_interest",
          "electronics_store"
        ]
      }
    }
  ]
}

เมื่อใช้ locationBias ตำแหน่งดังกล่าวจะทำหน้าที่เป็นการให้น้ำหนักพิเศษ ซึ่งหมายความว่าระบบสามารถแสดงผลลัพธ์รอบๆ ตำแหน่งที่ระบุ รวมถึงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุด้วย ในตัวอย่างถัดไป คุณเปลี่ยนคำขอเพื่อใช้ locationBias ดังนี้

curl -X POST -d '{
  "input": "Amoeba",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

ผลลัพธ์จะมีรายการเพิ่มเติมอีกจำนวนมาก รวมถึงผลลัพธ์ที่อยู่นอกรัศมี 5000 เมตรด้วย

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "store",
          "establishment",
          "home_goods_store"
        ]
      }
    },
    {
      "placePrediction": {
        "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
        "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
        "text": {
          "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Telegraph Avenue, Berkeley, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "establishment",
          "home_goods_store",
          "store"
        ]
      }
    },
    ...
  ]
}

ใช้ includePrimaryTypes

ใช้พารามิเตอร์ includedPrimaryTypes เพื่อจำกัดผลการค้นหาจากคำขอให้เป็นประเภทหนึ่งๆ ตามที่ระบุไว้ในตาราง A และตาราง B คุณสามารถระบุอาร์เรย์ได้สูงสุด 5 ค่า หากไม่ระบุ ระบบจะแสดงผลทุกประเภท

ในตัวอย่างต่อไปนี้ คุณระบุสตริง input ของ "ฟุตบอล" และใช้พารามิเตอร์ includedPrimaryTypes เพื่อจำกัดผลลัพธ์เฉพาะในประเภท "sporting_goods_store"

curl -X POST -d '{
  "input": "Soccer",
  "includedPrimaryTypes": ["sporting_goods_store"],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

หากคุณไม่ใส่พารามิเตอร์ includedPrimaryTypes ผลลัพธ์ก็จะรวมประเภทที่ไม่ต้องการ เช่น "athletic_field" ไว้ด้วย

ขอการคาดคะเนการค้นหา

การคาดคะเนการค้นหาจะไม่แสดงโดยค่าเริ่มต้น ใช้พารามิเตอร์คำขอ includeQueryPredictions เพื่อเพิ่มการคาดคะเนการค้นหาลงในการตอบกลับ เช่น

curl -X POST -d '{
  "input": "Amoeba",
  "includeQueryPredictions": true,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

ตอนนี้อาร์เรย์ suggestions จะมีทั้งการคาดคะเนสถานที่และการคาดคะเนการค้นหาดังที่แสดงด้านบนในหัวข้อเกี่ยวกับการตอบกลับ การคาดคะเนการค้นหาแต่ละรายการจะมีช่อง text ที่มีสตริงการค้นหาข้อความที่แนะนำ คุณสามารถส่งคำขอค้นหาข้อความ (ใหม่) เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับการคาดคะเนการค้นหาที่แสดงผล

ใช้ต้นทาง

ในตัวอย่างนี้ ให้ใส่ origin ในคำขอเป็นพิกัดละติจูดและลองจิจูด เมื่อคุณใส่ origin แล้ว API จะรวมช่อง distanceMeters ในการตอบกลับซึ่งมีระยะทางเส้นตรงจาก origin ไปยังปลายทาง ตัวอย่างนี้กำหนดต้นทางเป็นใจกลางเมืองซานฟรานซิสโก

curl -X POST -d '{
  "input": "Amoeba",
  "origin": {
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

ตอนนี้การตอบกลับมี distanceMeters:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "point_of_interest",
          "store",
          "electronics_store"
        ],
        "distanceMeters": 3012
      }
    }
  ]
}