บริการเติมข้อความอัตโนมัติ (ใหม่) คือบริการบนเว็บที่แสดงผลการคาดคะเนสถานที่และการคาดคะเนการค้นหาเพื่อตอบสนองต่อคำขอ 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 มิเช่นนั้น คำขอจะไม่แสดงผลลัพธ์เช่น
"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 } } ] }