Method: places.autocomplete

แสดงผลการคาดคะเนสำหรับอินพุตที่ระบุ

คำขอ HTTP

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

URL ใช้ไวยากรณ์การแปลง gRPC

เนื้อหาของคำขอ

เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "input": string,
  "locationBias": {
    object (LocationBias)
  },
  "locationRestriction": {
    object (LocationRestriction)
  },
  "includedPrimaryTypes": [
    string
  ],
  "includedRegionCodes": [
    string
  ],
  "languageCode": string,
  "regionCode": string,
  "origin": {
    object (LatLng)
  },
  "inputOffset": integer,
  "includeQueryPredictions": boolean,
  "sessionToken": string
}
ช่อง
input

string

ต้องระบุ สตริงข้อความที่จะค้นหา

locationBias

object (LocationBias)

ไม่บังคับ การให้น้ำหนักพิเศษตามตำแหน่งที่ระบุ

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

locationRestriction

object (LocationRestriction)

ไม่บังคับ จำกัดผลการค้นหาในตำแหน่งที่ระบุ

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

includedPrimaryTypes[]

string

ไม่บังคับ ระบุประเภทสถานที่หลัก (เช่น "ร้านอาหาร" หรือ "gas_station") จาก https://developers.google.com/maps/documentation/places/web-service/place-types ระบบจะแสดงสถานที่ก็ต่อเมื่อประเภทหลักของสถานที่ดังกล่าวรวมอยู่ในรายการนี้เท่านั้น ระบุได้สูงสุด 5 ค่า หากไม่มีการระบุประเภท ระบบจะแสดงผลสถานที่ทุกประเภท

includedRegionCodes[]

string

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

languageCode

string

ไม่บังคับ ภาษาของผลการค้นหา ค่าเริ่มต้นคือ en-US ผลการค้นหาอาจเป็นภาษาผสม หากภาษาที่ใช้ในinputต่างจากlanguageCode หรือหากสถานที่ที่ส่งคืนไม่มีคำแปลจากภาษาท้องถิ่นเป็นlanguageCode

regionCode

string

ไม่บังคับ รหัสภูมิภาคที่ระบุเป็นรหัสภูมิภาคแบบ 2 อักขระของ CLDR ซึ่งจะส่งผลต่อการจัดรูปแบบที่อยู่ การจัดอันดับผลลัพธ์ และอาจส่งผลต่อผลลัพธ์ที่จะแสดง การดำเนินการนี้ไม่ได้จำกัดผลลัพธ์เฉพาะภูมิภาคที่ระบุ หากต้องการจำกัดผลการค้นหาให้แสดงเฉพาะภูมิภาค ให้ใช้ region_code_restriction

origin

object (LatLng)

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

inputOffset

integer

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

หากเว้นว่างไว้ ระบบจะใช้ระยะเวลาตามค่าเริ่มต้น input

includeQueryPredictions

boolean

ไม่บังคับ หากจริง การตอบกลับจะรวมทั้งการคาดคะเนสถานที่และคำค้นหา มิฉะนั้นการตอบกลับจะแสดงเฉพาะการคาดคะเนสถานที่เท่านั้น

sessionToken

string

ไม่บังคับ สตริงที่ระบุเซสชันการเติมข้อความอัตโนมัติเพื่อจุดประสงค์ในการเรียกเก็บเงิน ต้องเป็น URL และสตริง base64 ที่ปลอดภัยสำหรับชื่อไฟล์ที่มีความยาวอักขระ ASCII ไม่เกิน 36 ตัว มิฉะนั้น ระบบจะแสดงข้อผิดพลาด INVALID_ARGUMENT

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

เราขอแนะนำหลักเกณฑ์ต่อไปนี้

  • ใช้โทเค็นเซสชันสำหรับการโทรที่เติมข้อความอัตโนมัติทั้งหมด
  • สร้างโทเค็นใหม่สำหรับแต่ละเซสชัน เราขอแนะนำให้ใช้ UUID เวอร์ชัน 4
  • ตรวจสอบว่าข้อมูลเข้าสู่ระบบที่ใช้สำหรับคำขอการเติมข้อความอัตโนมัติ รายละเอียดสถานที่ และการตรวจสอบที่อยู่ทั้งหมดในเซสชันเป็นของโปรเจ็กต์ Cloud Console เดียวกัน
  • อย่าลืมส่งโทเค็นเซสชันที่ไม่ซ้ำกันให้เซสชันใหม่แต่ละเซสชัน การใช้โทเค็นเดียวกันสำหรับมากกว่า 1 เซสชันจะส่งผลให้มีการเรียกเก็บเงินแต่ละคำขอแยกกัน

เนื้อหาการตอบกลับ

Proto การตอบกลับสำหรับ places.autocomplete

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "suggestions": [
    {
      object (Suggestion)
    }
  ]
}
ช่อง
suggestions[]

object (Suggestion)

มีรายการคำแนะนำที่เรียงตามลำดับความเกี่ยวข้องจากมากไปหาน้อย

LocationBias

ภูมิภาคที่จะค้นหา ผลลัพธ์อาจมีการให้น้ำหนักพิเศษกับภูมิภาคที่ระบุ

การแสดง JSON
{

  // Union field type can be only one of the following:
  "rectangle": {
    object (Viewport)
  },
  "circle": {
    object (Circle)
  }
  // End of list of possible types for union field type.
}
ช่อง

ฟิลด์สหภาพ type

type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น

rectangle

object (Viewport)

วิวพอร์ตที่ระบุโดยมุมตะวันออกเฉียงเหนือและตะวันตกเฉียงใต้

circle

object (Circle)

วงกลมที่กำหนดโดยจุดศูนย์กลางและรัศมี

LocationRestriction

ภูมิภาคที่จะค้นหา ผลลัพธ์จะถูกจำกัดไว้ในภูมิภาคที่ระบุ

การแสดง JSON
{

  // Union field type can be only one of the following:
  "rectangle": {
    object (Viewport)
  },
  "circle": {
    object (Circle)
  }
  // End of list of possible types for union field type.
}
ช่อง

ฟิลด์สหภาพ type

type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น

rectangle

object (Viewport)

วิวพอร์ตที่ระบุโดยมุมตะวันออกเฉียงเหนือและตะวันตกเฉียงใต้

circle

object (Circle)

วงกลมที่กำหนดโดยจุดศูนย์กลางและรัศมี

คำแนะนำ

ผลลัพธ์ของคำแนะนำที่เติมข้อความอัตโนมัติ

การแสดง JSON
{

  // Union field kind can be only one of the following:
  "placePrediction": {
    object (PlacePrediction)
  },
  "queryPrediction": {
    object (QueryPrediction)
  }
  // End of list of possible types for union field kind.
}
ช่อง

ฟิลด์สหภาพ kind

kind ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น

placePrediction

object (PlacePrediction)

การคาดคะเนสำหรับสถานที่

queryPrediction

object (QueryPrediction)

การคาดคะเนสำหรับการค้นหา

PlacePrediction

ผลการคาดการณ์สำหรับการคาดคะเนการเติมข้อความอัตโนมัติในสถานที่

การแสดง JSON
{
  "place": string,
  "placeId": string,
  "text": {
    object (FormattableText)
  },
  "structuredFormat": {
    object (StructuredFormat)
  },
  "types": [
    string
  ],
  "distanceMeters": integer
}
ช่อง
place

string

ชื่อทรัพยากรของสถานที่ที่แนะนำ ชื่อนี้สามารถใช้ใน API อื่นๆ ที่ยอมรับชื่อสถานที่

placeId

string

ตัวระบุที่ไม่ซ้ำของสถานที่ที่แนะนำ ตัวระบุนี้ใช้ได้ใน API อื่นๆ ที่ยอมรับรหัสสถานที่

text

object (FormattableText)

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

แนะนำให้ใช้ text สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI เดียว นักพัฒนาแอปที่ต้องการแสดงองค์ประกอบ UI 2 รายการแยกกัน แต่มีความเกี่ยวข้องกันอาจต้องการใช้ structuredFormat แทน การแสดงการคาดคะเนสถานที่มี 2 วิธีที่แตกต่างกัน ผู้ใช้ไม่ควรพยายามแยกวิเคราะห์ structuredFormat เป็น text หรือกลับกัน

ข้อความนี้อาจแตกต่างจาก displayName ที่แสดงโดย places.get

อาจเป็นภาษาผสม หากคำขอ input และ languageCode เป็นภาษาอื่น หรือหากสถานที่ไม่มีคำแปลจากภาษาท้องถิ่นเป็น languageCode

structuredFormat

object (StructuredFormat)

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

เราขอแนะนำให้ใช้ structuredFormat สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI 2 รายการแยกกัน แต่มีความเกี่ยวข้องกัน นักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI เดียวอาจต้องการใช้ text แทน การแสดงการคาดคะเนสถานที่มี 2 วิธีที่แตกต่างกัน ผู้ใช้ไม่ควรพยายามแยกวิเคราะห์ structuredFormat เป็น text หรือกลับกัน

types[]

string

รายชื่อประเภทที่ใช้กับสถานที่นี้จากตาราง ก หรือตาราง ข ใน https://developers.google.com/maps/documentation/places/web-service/place-types

ประเภทคือการจัดหมวดหมู่สถานที่ สถานที่ที่มีประเภทสถานที่ร่วมกันจะมีลักษณะคล้ายกัน

distanceMeters

integer

ความยาวของภูมิศาสตร์ในหน่วยเมตรจาก origin หากระบุ origin การคาดการณ์บางอย่าง เช่น เส้นทาง อาจไม่แสดงช่องนี้

FormattableText

ข้อความแสดงการคาดคะเนสถานที่หรือการค้นหา จะใช้ข้อความตามที่เป็นหรือจัดรูปแบบก็ได้

การแสดง JSON
{
  "text": string,
  "matches": [
    {
      object (StringRange)
    }
  ]
}
ช่อง
text

string

ข้อความที่อาจใช้ตามที่เป็นอยู่หรือมีรูปแบบเป็น matches

matches[]

object (StringRange)

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

ค่าเหล่านี้เป็นออฟเซ็ตอักขระ Unicode ของ text ช่วงอย่างแน่นอนจะเรียงลำดับตามค่าออฟเซ็ตที่เพิ่มขึ้น

StringRange

ระบุสตริงย่อยภายในข้อความที่กำหนด

การแสดง JSON
{
  "startOffset": integer,
  "endOffset": integer
}
ช่อง
startOffset

integer

ออฟเซ็ตแบบศูนย์ของอักขระ Unicode ตัวแรกของสตริง (รวม)

endOffset

integer

ออฟเซ็ตของอักขระ Unicode ตัวสุดท้ายแบบศูนย์ (ไม่รวม)

StructuredFormat

มีรายละเอียดการคาดคะเนสถานที่หรือการค้นหาเป็นข้อความหลักและข้อความรอง

สำหรับการคาดคะเนสถานที่ ข้อความหลักจะมีชื่อเฉพาะของสถานที่ สำหรับการคาดคะเนการค้นหา ข้อความหลักจะประกอบด้วยคำค้นหา

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

การแสดง JSON
{
  "mainText": {
    object (FormattableText)
  },
  "secondaryText": {
    object (FormattableText)
  }
}
ช่อง
mainText

object (FormattableText)

แสดงชื่อของสถานที่หรือข้อความค้นหา

secondaryText

object (FormattableText)

แสดงถึงคุณลักษณะเพิ่มเติมที่ชัดเจน (เช่น เมืองหรือภูมิภาค) เพื่อระบุสถานที่หรือปรับแต่งข้อความค้นหาเพิ่มเติม

QueryPrediction

ผลการคาดการณ์สำหรับการคาดคะเนการเติมข้อความอัตโนมัติในข้อความค้นหา

การแสดง JSON
{
  "text": {
    object (FormattableText)
  },
  "structuredFormat": {
    object (StructuredFormat)
  }
}
ช่อง
text

object (FormattableText)

ข้อความที่คาดการณ์ ข้อความนี้ไม่ได้แสดงสถานที่ แต่เป็นข้อความค้นหาที่สามารถใช้ในปลายทางการค้นหา (เช่น การค้นหาข้อความ)

แนะนำให้ใช้ text สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI เดียว นักพัฒนาแอปที่ต้องการแสดงองค์ประกอบ UI 2 รายการแยกกัน แต่มีความเกี่ยวข้องกันอาจต้องการใช้ structuredFormat แทน ทั้งสองวิธีนี้แสดงถึงการคาดคะเนข้อความค้นหาที่แตกต่างกัน 2 วิธี ผู้ใช้ไม่ควรพยายามแยกวิเคราะห์ structuredFormat เป็น text หรือกลับกัน

อาจอยู่ในภาษาผสมหากคำขอ input และ languageCode เป็นภาษาอื่น หรือหากส่วนหนึ่งของข้อความค้นหาไม่มีคำแปลจากภาษาท้องถิ่นเป็น languageCode

structuredFormat

object (StructuredFormat)

รายละเอียดของการคาดคะเนข้อความค้นหาเป็นข้อความหลักที่มีข้อความค้นหาและข้อความรองซึ่งมีคุณลักษณะเพิ่มเติมที่ชัดเจน (เช่น เมืองหรือภูมิภาค)

เราขอแนะนำให้ใช้ structuredFormat สำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI 2 รายการแยกกัน แต่มีความเกี่ยวข้องกัน นักพัฒนาซอฟต์แวร์ที่ต้องการแสดงองค์ประกอบ UI เดียวอาจต้องการใช้ text แทน ทั้งสองวิธีนี้แสดงถึงการคาดคะเนข้อความค้นหาที่แตกต่างกัน 2 วิธี ผู้ใช้ไม่ควรพยายามแยกวิเคราะห์ structuredFormat เป็น text หรือกลับกัน