บทนำ
การเติมข้อความอัตโนมัติ (ใหม่) เป็นเว็บเซอร์วิสที่แสดงการคาดคะเนสถานที่และการคาดคะเนคำค้นหาเพื่อตอบสนองต่อคำขอ HTTP ในคำขอ ให้ระบุสตริงการค้นหาข้อความและขอบเขตทางภูมิศาสตร์ที่ควบคุมพื้นที่การค้นหา
การเติมข้อความอัตโนมัติ (ใหม่) สามารถจับคู่คำเต็มและสตริงย่อยของอินพุต แก้ไขชื่อสถานที่ ที่อยู่ และPlus Codes ดังนั้น แอปพลิเคชันจึงสามารถส่งคำค้นหาขณะที่ผู้ใช้พิมพ์เพื่อแสดงการคาดคะเนสถานที่และคำค้นหาได้ทันที
การตอบกลับจากการเติมข้อความอัตโนมัติ (ใหม่) อาจมีการคาดคะเน 2 ประเภท ได้แก่
- การคาดคะเนสถานที่: สถานที่ เช่น ธุรกิจ ที่อยู่ และจุดที่น่าสนใจ โดยอิงตามสตริงข้อความที่ป้อนและพื้นที่ค้นหาที่ระบุ ระบบจะแสดงการคาดคะเนสถานที่โดยค่าเริ่มต้น
- การคาดการณ์คำค้นหา: สตริงคำค้นหาที่ตรงกับสตริงข้อความที่ป้อนและ
พื้นที่ค้นหา ระบบจะไม่แสดงการคาดการณ์การค้นหาโดยค่าเริ่มต้น ใช้พารามิเตอร์คำขอ
includeQueryPredictionsเพื่อเพิ่มการคาดการณ์การค้นหาในการตอบกลับ
ตัวอย่างเช่น คุณเรียกใช้การเติมข้อความอัตโนมัติ (ใหม่) โดยใช้สตริงที่มีข้อมูลจากผู้ใช้บางส่วนเป็นอินพุต เช่น "Sicilian piz" โดยจำกัดพื้นที่ค้นหาไว้ที่ซานฟรานซิสโก แคลิฟอร์เนีย จากนั้นคำตอบจะมีรายการการคาดคะเนสถานที่ที่ตรงกับสตริงการค้นหาและพื้นที่ค้นหา เช่น ร้านอาหารชื่อ "Sicilian Pizza Kitchen" พร้อมรายละเอียดเกี่ยวกับสถานที่
การคาดคะเนสถานที่ที่ส่งกลับได้รับการออกแบบมาเพื่อแสดงต่อผู้ใช้เพื่อช่วย ในการเลือกสถานที่ที่ต้องการ คุณสามารถส่งคำขอรายละเอียดสถานที่ (ใหม่) เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการคาดคะเนสถานที่ที่แสดง
การตอบกลับยังอาจมีรายการการคาดคะเนการค้นหาที่ตรงกับสตริงการค้นหาและพื้นที่การค้นหา เช่น "Sicilian Pizza & Pasta" การคาดคะเนการค้นหาแต่ละรายการในการตอบกลับจะมีช่อง text ซึ่งมีสตริงการค้นหาข้อความที่แนะนำ ใช้สตริงดังกล่าวเป็นอินพุตไปยังการค้นหาข้อความ (ใหม่)
เพื่อทำการค้นหาที่ละเอียดยิ่งขึ้น
โปรแกรมสำรวจ API ช่วยให้คุณส่งคำขอแบบสดเพื่อให้คุ้นเคยกับ API และตัวเลือก API ได้
คำขอเติมข้อความอัตโนมัติ (ใหม่)
คำขอการเติมข้อความอัตโนมัติ (ใหม่) คือคำขอ 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
พารามิเตอร์ที่รองรับ
พารามิเตอร์ |
คำอธิบาย |
|---|---|
สตริงข้อความที่จะค้นหา (คำเต็ม, สตริงย่อย, ชื่อสถานที่, ที่อยู่, Plus Code) |
|
|
รายการที่คั่นด้วยคอมมาซึ่งระบุฟิลด์ที่จะแสดงผลในการตอบกลับ |
จำกัดผลลัพธ์ให้เป็นสถานที่ที่ตรงกับประเภทหลักที่ระบุไว้ 1 ใน 5 ประเภท |
|
หากเป็นจริง จะรวมธุรกิจที่ไม่มีสถานที่ตั้งจริง (ธุรกิจที่ให้บริการตามสถานที่) ค่าเริ่มต้นคือ false |
|
หากเป็นจริง จะรวมทั้งการคาดคะเนสถานที่และการคาดคะเนการค้นหาไว้ใน การตอบกลับ ค่าเริ่มต้นคือ false |
|
อาร์เรย์ของรหัสประเทศแบบ 2 อักขระสูงสุด 15 รายการเพื่อจำกัด ผลลัพธ์ |
|
ออฟเซ็ตอักขระ Unicode ที่อิงตาม 0 ของตำแหน่งเคอร์เซอร์ภายในสตริงอินพุต ซึ่งมีผลต่อการคาดคะเน ค่าเริ่มต้นคือความยาวของอินพุต |
|
ภาษาที่ต้องการ (รหัส IETF BCP-47) สำหรับผลลัพธ์ ค่าเริ่มต้นคือส่วนหัว Accept-Language หรือ "en" |
|
ระบุพื้นที่ (วงกลมหรือสี่เหลี่ยมผืนผ้า) เพื่อให้น้ำหนักพิเศษกับผลการค้นหา และอนุญาตให้แสดงผลลัพธ์นอกพื้นที่ ใช้กับ locationRestriction ไม่ได้ |
|
ระบุพื้นที่ (วงกลมหรือสี่เหลี่ยมผืนผ้า) เพื่อจำกัดผลการค้นหาภายในพื้นที่นั้น ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่นี้ ใช้กับ locationBias ไม่ได้ |
|
จุดต้นทาง (ละติจูด ลองจิจูด) ที่ใช้ในการคำนวณ ระยะทางแบบเส้นตรง (distanceMeters) ไปยังจุดหมายปลายทางที่คาดการณ์ |
|
รหัสภูมิภาคที่ใช้จัดรูปแบบคำตอบและคำแนะนำ (เช่น "uk", "fr") |
|
สตริงที่ผู้ใช้สร้างขึ้นเพื่อจัดกลุ่มการเรียกใช้การเติมข้อความอัตโนมัติเป็นเซสชันเดียวเพื่อวัตถุประสงค์ในการเรียกเก็บเงิน |
เกี่ยวกับคำตอบ
ฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) จะแสดงผลออบเจ็กต์ JSON เป็นการตอบกลับ ในการตอบกลับ ให้ทำดังนี้
- อาร์เรย์
suggestionsมีสถานที่และคำค้นหาที่คาดการณ์ทั้งหมดตามลำดับ โดยอิงตามความเกี่ยวข้องที่รับรู้ สถานที่แต่ละแห่งจะแสดงด้วยช่องplacePredictionและคำค้นหาแต่ละรายการจะแสดงด้วยช่องqueryPrediction - ช่อง
placePredictionมีข้อมูลโดยละเอียดเกี่ยวกับการคาดคะเนสถานที่รายการเดียว ซึ่งรวมถึงรหัสสถานที่และคำอธิบายข้อความ- คำอธิบายข้อความของการคาดคะเนสถานที่อาจมีชื่ออื่นของสถานที่ ถนน และองค์ประกอบอื่นๆ ของที่อยู่ เพื่อให้ตรงกับข้อมูลที่ผู้ใช้ป้อนตามที่ระบุไว้ในพารามิเตอร์
inputมากขึ้น ชื่ออื่นเหล่านี้อาจแตกต่างจากชื่อที่แสดงในฟิลด์displayNameและฟิลด์ที่อยู่ของผลลัพธ์รายละเอียดสถานที่สำหรับรหัสสถานที่เดียวกัน - ในบริบทนี้ ชื่ออื่นของสถานที่บางแห่งอาจเป็นภาษาอื่นนอกเหนือจากที่คาดไว้ตามพารามิเตอร์
languageCodeโดยขึ้นอยู่กับว่าชื่อใดตรงกับข้อมูลจากผู้ใช้มากกว่า
- คำอธิบายข้อความของการคาดคะเนสถานที่อาจมีชื่ออื่นของสถานที่ ถนน และองค์ประกอบอื่นๆ ของที่อยู่ เพื่อให้ตรงกับข้อมูลที่ผู้ใช้ป้อนตามที่ระบุไว้ในพารามิเตอร์
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 Code บริการเติมข้อความอัตโนมัติ (ใหม่) จะแสดงรายการที่ตรงกันตามสตริงนี้และจัดลำดับผลลัพธ์ตาม ความเกี่ยวข้องที่รับรู้
พารามิเตอร์ที่ไม่บังคับ
-
FieldMask
ระบุรายการฟิลด์ที่จะแสดงในคำตอบโดยสร้างมาสก์ฟิลด์คำตอบ ส่งมาสก์ฟิลด์การตอบกลับไปยังเมธอดโดยใช้ส่วนหัว HTTP
X-Goog-FieldMaskระบุรายการช่องคำแนะนำที่คั่นด้วยคอมมาที่จะแสดงผล เช่น เพื่อดึงข้อมูล
suggestions.placePrediction.text.textและsuggestions.queryPrediction.text.textของคำแนะนำX-Goog-FieldMask: suggestions.placePrediction.text.text,suggestions.queryPrediction.text.text
ใช้
*เพื่อดึงข้อมูลทุกฟิลด์X-Goog-FieldMask: *
-
includeFutureOpeningBusinesses
หาก
true, แสดงธุรกิจ ที่คาดว่าจะเปิดในอนาคต ค่าเริ่มต้นคือfalse -
includedPrimaryTypes
สถานที่หนึ่งๆ จะมีประเภทหลักเดียวจากประเภทที่แสดงใน ตาราง A หรือ ตาราง B ได้เท่านั้น เช่น ประเภทหลักอาจเป็น
"mexican_restaurant"หรือ"steak_house"โดยค่าเริ่มต้น API จะแสดงสถานที่ทั้งหมดตามพารามิเตอร์
inputโดยไม่คำนึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่ จำกัดผลลัพธ์ให้เป็นประเภทหลักที่เฉพาะเจาะจง หรือประเภทหลักโดยส่งพารามิเตอร์includedPrimaryTypesใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจาก ตาราง A หรือ ตาราง B สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุค่าใดค่าหนึ่งจึงจะรวมอยู่ในการตอบกลับ
พารามิเตอร์นี้อาจมี
(regions)หรือ(cities)แทนก็ได้(regions)ตัวกรองคอลเล็กชันประเภทสำหรับพื้นที่หรือ เขต เช่น ย่านและรหัสไปรษณีย์(cities)คอลเล็กชันประเภท กรองสถานที่ที่ Google ระบุว่าเป็นเมืองคำขอจะถูกปฏิเสธพร้อมข้อผิดพลาด
INVALID_REQUESTในกรณีต่อไปนี้- ระบุประเภทมากกว่า 5 ประเภท
- มีการระบุประเภทใดก็ตามนอกเหนือจาก
(cities)หรือ(regions) - ระบุประเภทที่ไม่รู้จัก
-
includePureServiceAreaBusinesses
หากตั้งค่าเป็น
trueการตอบกลับจะรวมธุรกิจที่เข้าพบหรือนำส่งสินค้าให้ลูกค้าโดยตรง แต่ไม่มีที่ตั้งธุรกิจจริง หากตั้งค่าเป็นfalseAPI จะแสดงเฉพาะธุรกิจที่มี สถานที่ตั้งจริง -
includeQueryPredictions
หากเป็น
trueการตอบกลับจะมีทั้งการคาดคะเนสถานที่และการคาดคะเนการค้นหา ค่าเริ่มต้น คือfalseซึ่งหมายความว่าการตอบกลับจะมีเฉพาะการคาดคะเนสถานที่ -
includedRegionCodes
รวมเฉพาะผลลัพธ์จากรายการภูมิภาคที่ระบุ ซึ่งระบุเป็นอาร์เรย์ของค่า ccTLD ("โดเมนระดับบนสุด") 2 อักขระสูงสุด 15 ค่า หากละเว้น ระบบจะไม่ใช้ข้อจำกัดใดๆ กับการตอบกลับ เช่น หากต้องการจำกัดภูมิภาคเป็นเยอรมนีและฝรั่งเศส ให้ทำดังนี้
"includedRegionCodes": ["de", "fr"]
หากคุณระบุทั้ง
locationRestrictionและincludedRegionCodesผลลัพธ์จะอยู่ในพื้นที่ที่การตั้งค่าทั้ง 2 รายการตัดกัน -
inputOffset
ออฟเซ็ตอักขระ Unicode ที่อิงตาม 0 ซึ่งระบุตำแหน่งเคอร์เซอร์ใน
inputตำแหน่งเคอร์เซอร์อาจส่งผลต่อการคาดคะเนที่แสดงผล หากเว้นว่างไว้ ระบบจะใช้ค่าเริ่มต้นเป็นความยาวของinput -
languageCode
ภาษาที่ต้องการซึ่งจะใช้แสดงผลลัพธ์ ผลการค้นหาอาจมีหลายภาษา หากภาษาที่ใช้ใน
inputแตกต่างจากค่าที่ระบุโดยlanguageCodeหรือหากสถานที่ที่แสดงไม่มีการแปลจาก ภาษาท้องถิ่นเป็นlanguageCode- คุณต้องใช้รหัสภาษา IETF BCP-47 เพื่อระบุภาษาที่ต้องการ
-
หากไม่ได้ระบุ
languageCodeAPI จะใช้ค่าที่ระบุในส่วนหัวAccept-Languageหากไม่ได้ระบุทั้ง 2 อย่าง ค่าเริ่มต้นจะเป็นenหากคุณระบุรหัสภาษาที่ไม่ถูกต้อง API จะแสดงข้อผิดพลาดINVALID_ARGUMENT - ภาษาที่ต้องการมีผลเล็กน้อยต่อชุดผลลัพธ์ที่ API เลือกที่จะแสดง และลำดับที่แสดง ซึ่งจะส่งผลต่อความสามารถของ API ในการแก้ไขข้อผิดพลาดในการสะกดด้วย
-
ระบบจะจัดรูปแบบการคาดคะเนสถานที่แตกต่างกันไปตามข้อมูลที่ผู้ใช้ป้อนในแต่ละคำขอ
-
ระบบจะเลือกคำที่ตรงกันในพารามิเตอร์
inputก่อน โดยใช้ชื่อที่สอดคล้องกับค่ากำหนดภาษาที่ระบุโดยพารามิเตอร์languageCode(หากมี) หรือใช้ชื่อที่ตรงกับข้อมูลจากผู้ใช้มากที่สุด -
คุณอาจจัดรูปแบบชื่อสถานที่โดยใช้ชื่ออื่นเพื่อให้ตรงกับ
ข้อกำหนดในพารามิเตอร์
inputซึ่งรวมถึงชื่อใน ภาษาอื่นๆ นอกเหนือจากภาษาที่ระบุโดยพารามิเตอร์languageCode -
ระบบจะจัดรูปแบบที่อยู่เป็นภาษาท้องถิ่นในสคริปต์ที่ผู้ใช้อ่านได้
เมื่อเป็นไปได้ หลังจากเลือกคำที่ตรงกันให้ตรงกับคำในพารามิเตอร์
inputเท่านั้น -
ส่วนที่อยู่อื่นๆ จะแสดงในภาษาที่ต้องการหลังจากเลือกคำที่ตรงกันแล้ว
เพื่อให้ตรงกับคำในพารามิเตอร์
inputหากชื่อไม่มีในภาษาที่ต้องการ API จะใช้ชื่อที่ใกล้เคียงที่สุด
-
ระบบจะเลือกคำที่ตรงกันในพารามิเตอร์
locationBias หรือ locationRestriction
คุณระบุ
locationBiasหรือlocationRestrictionเพื่อกำหนดพื้นที่ค้นหาได้ แต่จะระบุทั้ง 2 อย่างไม่ได้locationRestrictionให้คิดว่าเป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ภายใน และlocationBiasให้คิดว่าเป็นการระบุภูมิภาคที่ผลลัพธ์ต้องอยู่ใกล้แต่สามารถอยู่นอกพื้นที่ได้locationBias
ระบุพื้นที่ที่จะค้นหา ตำแหน่งนี้จะเป็นตำแหน่งที่ให้น้ำหนักพิเศษ ซึ่งหมายความว่าระบบจะแสดงผลลัพธ์รอบๆ ตำแหน่งที่ระบุ รวมถึงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ
locationRestriction
ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ
ระบุภูมิภาค
locationBiasหรือlocationRestrictionเป็นวิวพอร์ตสี่เหลี่ยมผืนผ้าหรือเป็นวงกลมวงกลมกำหนดโดยจุดศูนย์กลางและรัศมีเป็นเมตร รัศมีต้องอยู่ระหว่าง 0.0 ถึง 50000.0 (รวม) ค่าเริ่มต้นคือ 0.0 สำหรับ
locationRestrictionคุณต้องตั้งค่ารัศมีให้มากกว่า 0.0 ไม่เช่นนั้น คำขอจะแสดงผลเป็น ไม่มีผลลัพธ์เช่น
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
สี่เหลี่ยมผืนผ้าคือวิวพอร์ตในรูปแบบละติจูด-ลองจิจูด ซึ่งกำหนดด้วยจุดสองจุดที่อยู่มุมตรงข้ามกัน โดยจุดหนึ่งเป็นค่าต่ำสุด
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 } } }
- หาก
-
origin
จุดต้นทางที่จะใช้คำนวณระยะทางแบบเส้นตรงไปยัง ปลายทาง (แสดงผลเป็น
distanceMeters) หากละเว้นค่านี้ ระบบจะไม่แสดงผลระยะทางแบบเส้นตรง ต้องระบุเป็น พิกัดละติจูดและลองจิจูด:"origin": { "latitude": 40.477398, "longitude": -74.259087 }
-
regionCode
รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ โดยระบุเป็นค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับ นิติบุคคล "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")
นอกจากนี้ คำแนะนำยังอาจเอนเอียงตามรหัสภูมิภาคด้วย Google ขอแนะนำให้ตั้งค่า
regionCodeตามค่ากำหนดตามพื้นที่ของผู้ใช้หากคุณระบุรหัสภูมิภาคที่ไม่ถูกต้อง API จะแสดงข้อผิดพลาด
INVALID_ARGUMENTพารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง -
sessionToken
โทเค็นของเซสชันคือสตริงที่ผู้ใช้สร้างขึ้นซึ่งติดตามการเรียกใช้การเติมข้อความอัตโนมัติ (ใหม่) เป็น "เซสชัน" การเติมข้อความอัตโนมัติ (ใหม่) ใช้โทเค็นของเซสชันเพื่อ จัดกลุ่มระยะการค้นหาและการเลือกของการค้นหาแบบเติมข้อความอัตโนมัติของผู้ใช้เป็นเซสชันที่ไม่ต่อเนื่องเพื่อ วัตถุประสงค์ในการเรียกเก็บเงิน ดูข้อมูลเพิ่มเติมได้ที่ โทเค็นของเซสชัน
เลือกพารามิเตอร์เพื่อให้น้ำหนักผลลัพธ์
พารามิเตอร์การเติมข้อความอัตโนมัติ (ใหม่) อาจส่งผลต่อผลการค้นหาแตกต่างกัน ตารางต่อไปนี้แสดงคําแนะนําสําหรับการใช้พารามิเตอร์ตามผลลัพธ์ที่ต้องการ| พารามิเตอร์ | คำแนะนำในการใช้งาน |
|---|---|
regionCode |
ตั้งค่าตามค่ากำหนดตามพื้นที่ของผู้ใช้ |
includedRegionCodes |
ตั้งค่าเพื่อจำกัดผลการค้นหาให้แสดงเฉพาะในรายการภูมิภาคที่ระบุ |
locationBias |
ใช้เมื่อต้องการผลลัพธ์ในหรือรอบๆ ภูมิภาค หากเป็นไปได้ ให้กำหนดภูมิภาคเป็นวิวพอร์ตของแผนที่ที่ผู้ใช้กำลังดูอยู่ |
locationRestriction |
ใช้เฉพาะเมื่อไม่ควรแสดงผลการค้นหานอกภูมิภาค |
origin |
ใช้เมื่อต้องการระยะทางเส้นตรงไปยังการคาดการณ์แต่ละรายการ |
ตัวอย่างการเติมข้อความอัตโนมัติ (ใหม่)
จำกัดการค้นหาในพื้นที่โดยใช้ locationRestriction
ก็ได้locationRestriction ระบุพื้นที่ที่จะค้นหา ระบบจะไม่แสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่ระบุ
ในตัวอย่างต่อไปนี้ คุณใช้ locationRestriction เพื่อจำกัดคำขอให้เป็นวงกลมที่มีรัศมี 5, 000 เมตรซึ่งมีจุดศูนย์กลางอยู่ที่ซานฟรานซิสโก
curl -X POST -d '{
"input": "Art museum",
"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/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "establishment", "museum", "point_of_interest" ] } }, { "placePrediction": { "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w", "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w", "text": { "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA", "matches": [ { "endOffset": 15 } ] }, "structuredFormat": { "mainText": { "text": "de Young Museum", "matches": [ { "endOffset": 15 } ] }, "secondaryText": { "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA" } }, "types": [ "establishment", "point_of_interest", "tourist_attraction", "museum" ] } }, /.../ ] }
นอกจากนี้ คุณยังใช้ locationRestriction เพื่อจำกัดการค้นหาให้แสดงเฉพาะในสี่เหลี่ยมผืนผ้า
Viewport ได้ด้วย ตัวอย่างต่อไปนี้จำกัดคำขอไว้ที่ตัวเมืองซานฟรานซิสโก
curl -X POST -d '{
"input": "Art museum",
"locationRestriction": {
"rectangle": {
"low": {
"latitude": 37.7751,
"longitude": -122.4219
},
"high": {
"latitude": 37.7955,
"longitude": -122.3937
}
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
ผลลัพธ์จะอยู่ในอาร์เรย์ suggestions ดังนี้
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "point_of_interest", "museum", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc", "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc", "text": { "text": "International Art Museum of America, Market Street, San Francisco, CA, USA", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "structuredFormat": { "mainText": { "text": "International Art Museum of America", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "secondaryText": { "text": "Market Street, San Francisco, CA, USA" } }, "types": [ "museum", "point_of_interest", "tourist_attraction", "art_gallery", "establishment" ] } } ] }
กำหนดการค้นหาไปยังพื้นที่โดยใช้ 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
ตอนนี้ผลการค้นหามีรายการมากขึ้น รวมถึงผลการค้นหาที่อยู่นอกรัศมี 5, 000 เมตรด้วย
{ "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" ] } }, ... ] }
นอกจากนี้ คุณยังใช้ locationBias เพื่อให้การค้นหามุ่งเน้นไปที่สี่เหลี่ยมผืนผ้า
Viewport ได้ด้วย ตัวอย่างต่อไปนี้จำกัดคำขอไว้ที่ตัวเมืองซานฟรานซิสโก
curl -X POST -d '{
"input": "Amoeba",
"locationBias": {
"rectangle": {
"low": {
"latitude": 37.7751,
"longitude": -122.4219
},
"high": {
"latitude": 37.7955,
"longitude": -122.3937
}
}
}
}' \
-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": [ "point_of_interest", "store", "establishment" ] } }, { "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": [ "point_of_interest", "store", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI", "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI", "text": { "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Hollywood Boulevard, Los Angeles, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, /.../ ] }
ใช้ includedPrimaryTypes
ใช้พารามิเตอร์ includedPrimaryTypes เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจาก
ตาราง ก
ตาราง ข
หรือ (regions) เท่านั้น หรือ (cities) เท่านั้น สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุค่าใดค่าหนึ่งจึงจะรวมอยู่ในการตอบกลับ
ในตัวอย่างต่อไปนี้ คุณระบุสตริง input เป็น "Soccer" และใช้พารามิเตอร์ 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 การเติมข้อความอัตโนมัติ (ใหม่) จะรวมช่อง 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 } } ] }
ค้นหาธุรกิจที่จะเปิดในอนาคต
ตัวอย่างต่อไปนี้แสดงคำขอการเติมข้อความอัตโนมัติ (ใหม่) สำหรับธุรกิจที่กำลังจะเปิดในอนาคตในเมืองนิวเมโดวส์ รัฐไอดาโฮ
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-d '{
"input": "Roberts Greenhouse and Tree Farm",
"includeFutureOpeningBusinesses": true,
"locationBias": {
"circle": {
"center": {"latitude": 44.9755100, "longitude": -116.2842180},
"radius": 20
}
}
}' \
"https://places.googleapis.com/v1/places:autocomplete"
การตอบกลับจะมีรายละเอียดเกี่ยวกับสถานที่ แต่ไม่มีวันที่เปิด
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJp1-VoKWJplQRMz8g-7Wa3Do", "placeId": "ChIJp1-VoKWJplQRMz8g-7Wa3Do", "text": { "text": "Roberts Greenhouse and Tree Farm, McLain Street, New Meadows, ID, USA", "matches": [ { "endOffset": 32 } ] }, "structuredFormat": { "mainText": { "text": "Roberts Greenhouse and Tree Farm", "matches": [ { "endOffset": 32 } ] }, "secondaryText": { "text": "McLain Street, New Meadows, ID, USA" } }, "types": [ "garden_center", "establishment", "service", "store", "point_of_interest" ] } } ] }
ไม่มีระยะทางในการตอบกลับ
ในบางกรณี distanceMeters จะหายไปจากเนื้อหาการตอบกลับ
แม้ว่า origin จะรวมอยู่ในคำขอก็ตาม ซึ่งอาจเกิดขึ้นในสถานการณ์ต่อไปนี้
distanceMetersไม่รวมอยู่ในการคาดการณ์routedistanceMetersจะไม่รวมอยู่ด้วยเมื่อค่าเป็น0ซึ่งเป็นกรณีของการคาดคะเนที่อยู่ห่างจากตำแหน่งoriginที่ระบุน้อยกว่า 1 เมตร
ไลบรารีของไคลเอ็นต์ที่พยายามอ่านช่อง distanceMeters จากออบเจ็กต์ที่แยกวิเคราะห์จะแสดงผลช่องที่มีค่า 0
อย่าแสดงระยะทางเป็น 0 ต่อผู้ใช้เพื่อหลีกเลี่ยงการทำให้ผู้ใช้เข้าใจผิด
การเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)
ส่วนนี้จะอธิบายแนวทางปฏิบัติแนะนำเพื่อช่วยให้คุณใช้ประโยชน์จากบริการเติมข้อความอัตโนมัติ (ใหม่) ได้อย่างเต็มที่
หลักเกณฑ์ทั่วไปมีดังนี้
- วิธีที่รวดเร็วที่สุดในการพัฒนาอินเทอร์เฟซผู้ใช้ที่ใช้งานได้คือการใช้วิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Maps JavaScript API, วิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Places SDK สำหรับ Android หรือวิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Places SDK สำหรับ iOS
- ทำความเข้าใจฟิลด์ข้อมูลที่จำเป็น การเติมข้อความอัตโนมัติ (ใหม่) ตั้งแต่เริ่มต้น
- ช่องการให้น้ำหนักตามสถานที่และการจำกัดสถานที่ตั้งเป็นช่องที่ไม่บังคับ แต่ก็อาจส่งผลต่อประสิทธิภาพการเติมข้อความอัตโนมัติอย่างมาก
- ใช้การจัดการข้อผิดพลาดเพื่อให้แน่ใจว่าแอปจะลดระดับลงอย่างราบรื่นหาก API แสดงข้อผิดพลาด
- ตรวจสอบว่าแอปของคุณจัดการกรณีที่ไม่มีการเลือกและเสนอวิธีให้ผู้ใช้ดำเนินการต่อ
แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพต้นทุน
การเพิ่มประสิทธิภาพต้นทุนขั้นพื้นฐาน
หากต้องการเพิ่มประสิทธิภาพค่าใช้จ่ายในการใช้บริการเติมข้อความอัตโนมัติ (ใหม่) ให้ใช้มาสก์ฟิลด์ในวิดเจ็ตรายละเอียดสถานที่ (ใหม่) และเติมข้อความอัตโนมัติ (ใหม่) เพื่อแสดงเฉพาะ ฟิลด์ข้อมูลเติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ
การเพิ่มประสิทธิภาพต้นทุนขั้นสูง
พิจารณาการใช้งาน Autocomplete (ใหม่) แบบเป็นโปรแกรมเพื่อเข้าถึง SKU: ราคาคำขอเติมข้อความอัตโนมัติ และขอผลลัพธ์ Geocoding API เกี่ยวกับสถานที่ที่เลือกแทนรายละเอียดสถานที่ (ใหม่) การกำหนดราคาต่อคำขอที่ใช้ร่วมกับ Geocoding API จะคุ้มค่ากว่าการกำหนดราคาต่อเซสชัน (อิงตามเซสชัน) หากเป็นไปตามเงื่อนไขต่อไปนี้ทั้ง 2 ข้อ
- หากต้องการเพียงละติจูดและลองจิจูดหรือที่อยู่ของสถานที่ที่ผู้ใช้เลือก Geocoding API จะให้ข้อมูลนี้โดยมีค่าใช้จ่ายน้อยกว่าการเรียกใช้รายละเอียดสถานที่ (ใหม่)
- หากผู้ใช้เลือกการคาดคะเนการเติมข้อความอัตโนมัติภายในคำขอการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) โดยเฉลี่ย 4 รายการหรือน้อยกว่า การกำหนดราคาต่อคำขออาจคุ้มค่ากว่าการกำหนดราคาต่อเซสชัน
แอปพลิเคชันของคุณต้องใช้ข้อมูลอื่นนอกเหนือจากที่อยู่และละติจูด/ลองจิจูดของการคาดการณ์ที่เลือกไหม
ใช่ ต้องระบุรายละเอียดเพิ่มเติม
ใช้การเติมข้อความอัตโนมัติที่อิงตามเซสชัน (ใหม่) กับรายละเอียดสถานที่ (ใหม่)
เนื่องจากแอปพลิเคชันของคุณต้องใช้รายละเอียดสถานที่ (ใหม่) เช่น ชื่อสถานที่ สถานะธุรกิจ
หรือเวลาทำการ การใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ควรใช้โทเค็นของเซสชัน
(แบบเป็นโปรแกรมหรือฝังในวิดเจ็ต
JavaScript,
Android
หรือ iOS)
ต่อเซสชัน บวกกับ SKU ของ Places ที่เกี่ยวข้อง
โดยขึ้นอยู่กับฟิลด์ข้อมูลสถานที่ที่คุณขอ1
การติดตั้งใช้งานวิดเจ็ต
ระบบจะสร้างการจัดการเซสชันลงในวิดเจ็ต
JavaScript
Android
หรือ iOS
โดยอัตโนมัติ ซึ่งรวมถึงทั้งคำขอเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่)
ในการคาดคะเนที่เลือก อย่าลืมระบุพารามิเตอร์ fields เพื่อให้มั่นใจว่าคุณขอเฉพาะฟิลด์ข้อมูล
การเติมข้อความอัตโนมัติ (ใหม่)
ที่คุณต้องการ
การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้
โทเค็นของเซสชัน
กับคำขอเติมข้อความอัตโนมัติ (ใหม่) เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้
- รหัสสถานที่จากการตอบกลับของการเติมข้อความอัตโนมัติ (ใหม่)
- โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
- พารามิเตอร์
fieldsที่ระบุ ฟิลด์ข้อมูลการเติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ
ไม่ ต้องใช้เพียงที่อยู่และสถานที่ตั้ง
Geocoding API อาจเป็นตัวเลือกที่คุ้มค่ากว่ารายละเอียดสถานที่ (ใหม่) สำหรับแอปพลิเคชันของคุณ ทั้งนี้ขึ้นอยู่กับประสิทธิภาพการใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ประสิทธิภาพของฟีเจอร์เติมข้อความอัตโนมัติ (ใหม่) ของแต่ละแอปพลิเคชันจะแตกต่างกันไป ขึ้นอยู่กับสิ่งที่ผู้ใช้ป้อน ตำแหน่งที่ใช้แอปพลิเคชัน และมีการใช้แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพหรือไม่
หากต้องการตอบคำถามต่อไปนี้ ให้วิเคราะห์จำนวนอักขระโดยเฉลี่ยที่ผู้ใช้พิมพ์ก่อนเลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) ในแอปพลิเคชัน
โดยเฉลี่ยแล้ว ผู้ใช้เลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) ในคำขอน้อยกว่า 5 รายการใช่ไหม
ใช่
ใช้โปรแกรมเติมข้อความอัตโนมัติ (ใหม่) โดยไม่ต้องใช้โทเค็นเซสชันและเรียกใช้ Geocoding API ในการคาดคะเนสถานที่ที่เลือก
Geocoding API แสดงที่อยู่และพิกัดละติจูด/ลองจิจูด
การส่งคำขอ Autocomplete Requests 4 รายการบวกกับการเรียก Geocoding API เกี่ยวกับการคาดคะเนสถานที่ที่เลือกจะมีค่าใช้จ่ายน้อยกว่า Autocomplete (ใหม่) ต่อเซสชัน1
ลองใช้แนวทางปฏิบัติแนะนำด้านประสิทธิภาพเพื่อช่วยให้ผู้ใช้ได้รับคำที่ระบบคาดคะเนซึ่งกำลังมองหาด้วยจำนวนอักขระที่น้อยลง
ไม่
ใช้การเติมข้อความอัตโนมัติ (ใหม่) ตามเซสชันกับรายละเอียดสถานที่ (ใหม่)
เนื่องจากจำนวนคำขอโดยเฉลี่ยที่คุณคาดว่าจะทำก่อนที่ผู้ใช้จะเลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) เกินค่าใช้จ่ายของการกำหนดราคาต่อเซสชัน การใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ของคุณจึงควรใช้โทเค็นเซสชันสำหรับทั้งคำขอการเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ที่เกี่ยวข้อง
ต่อเซสชัน
1
การติดตั้งใช้งานวิดเจ็ต
ระบบจะสร้างการจัดการเซสชันลงใน
วิดเจ็ต JavaScript,
Android
หรือ iOS
โดยอัตโนมัติ ซึ่งรวมถึงทั้งคำขอเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่)
ในการคาดคะเนที่เลือก อย่าลืมระบุพารามิเตอร์ fields
เพื่อให้แน่ใจว่าคุณขอเฉพาะช่องที่ต้องการเท่านั้น
การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้
โทเค็นของเซสชัน
กับคำขอเติมข้อความอัตโนมัติ (ใหม่)
เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้
- รหัสสถานที่จากการตอบกลับของการเติมข้อความอัตโนมัติ (ใหม่)
- โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
- พารามิเตอร์
fieldsที่ระบุ ฟิลด์ เช่น ที่อยู่และเรขาคณิต
พิจารณาการหน่วงเวลาคำขอการเติมข้อความอัตโนมัติ (ใหม่)
คุณสามารถใช้กลยุทธ์ต่างๆ เช่น หน่วงเวลาคำขอการเติมข้อความอัตโนมัติ (ใหม่) จนกว่าผู้ใช้จะพิมพ์อักขระ 3 หรือ 4 ตัวแรก เพื่อให้แอปพลิเคชันส่งคำขอน้อยลง ตัวอย่างเช่น การส่งคำขอการเติมข้อความอัตโนมัติ (ใหม่) สำหรับอักขระแต่ละตัวหลังจากที่ผู้ใช้พิมพ์อักขระที่ 3 หมายความว่าหากผู้ใช้พิมพ์อักขระ 7 ตัวแล้วเลือกคำที่คาดการณ์ไว้ซึ่งคุณส่งคำขอ Geocoding API 1 รายการ ค่าใช้จ่ายทั้งหมดจะเป็นค่าใช้จ่ายสำหรับการเติมข้อความอัตโนมัติ (ใหม่) 4 รายการต่อคำขอ + Geocoding1
หากการหน่วงเวลาคำขอช่วยให้คำขอแบบเป็นโปรแกรมโดยเฉลี่ยต่ำกว่า 4 ได้ คุณสามารถทำตามคำแนะนำในการติดตั้งใช้งาน Autocomplete ที่มีประสิทธิภาพ (ใหม่) ด้วย Geocoding API โปรดทราบว่าการหน่วงเวลาคำขออาจทำให้ผู้ใช้ที่คาดหวังว่าจะเห็นการคาดคะเนทุกครั้งที่กดแป้นพิมพ์รับรู้ว่าเกิดความหน่วง
ลองใช้แนวทางปฏิบัติแนะนำด้านประสิทธิภาพเพื่อช่วยให้ผู้ใช้ได้รับคำที่ระบบคาดคะเนซึ่งผู้ใช้กำลังมองหาโดยใช้จำนวนอักขระน้อยลง
-
ดูค่าใช้จ่ายได้ที่รายการราคาของ Google Maps Platform
แนวทางปฏิบัติแนะนำด้านประสิทธิภาพ
หลักเกณฑ์ต่อไปนี้อธิบายวิธีเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)
- เพิ่มข้อจำกัดในแต่ละประเทศ การเอนเอียงตามสถานที่ตั้ง และ (สำหรับการติดตั้งใช้งานแบบเป็นโปรแกรม) ค่ากำหนดภาษาลงในการติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ไม่จำเป็นต้องใช้ค่ากำหนดภาษาสำหรับวิดเจ็ต เนื่องจากวิดเจ็ตจะเลือกค่ากำหนดภาษาจากเบราว์เซอร์หรืออุปกรณ์เคลื่อนที่ของผู้ใช้
- หากการเติมข้อความอัตโนมัติ (ใหม่) มาพร้อมกับแผนที่ คุณสามารถกำหนดตำแหน่งตามวิวพอร์ตของแผนที่ได้
- ในกรณีที่ผู้ใช้ไม่ได้เลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) รายการใดรายการหนึ่ง โดยทั่วไป
เนื่องจากการคาดคะเนเหล่านั้นไม่ใช่ผลลัพธ์ที่ผู้ใช้ต้องการ คุณสามารถนำข้อมูลจากผู้ใช้เดิมมาใช้ซ้ำเพื่อพยายามรับผลลัพธ์ที่เกี่ยวข้องมากขึ้นได้โดยทำดังนี้
- หากคาดหวังให้ผู้ใช้ป้อนเฉพาะข้อมูลที่อยู่ ให้นำข้อมูลที่ผู้ใช้ป้อนเดิมมาใช้ซ้ำ ในการเรียก Geocoding API
- หากคาดว่าผู้ใช้จะป้อนคำค้นหาสถานที่ที่เฉพาะเจาะจงตามชื่อหรือที่อยู่ ให้ใช้คำขอรายละเอียดสถานที่ (ใหม่) หากคาดหวังผลลัพธ์ในภูมิภาคที่เฉพาะเจาะจงเท่านั้น ให้ใช้การเอนเอียงตามตำแหน่ง
- ผู้ใช้ที่ป้อนที่อยู่ย่อย เช่น ที่อยู่สำหรับยูนิตหรืออพาร์ตเมนต์ที่เฉพาะเจาะจง ภายในอาคาร เช่น ที่อยู่ในสาธารณรัฐเช็ก "Stroupežnického 3191/17, Praha" จะแสดงการคาดคะเนบางส่วนในการเติมข้อความอัตโนมัติ (ใหม่)
- ผู้ใช้ที่ป้อนที่อยู่ที่มีคำนำหน้าส่วนของถนน เช่น "23-30 29th St, Queens" ใน นิวยอร์กซิตี้ หรือ "47-380 Kamehameha Hwy, Kaneohe" บนเกาะคาไวในฮาวาย
การให้น้ำหนักพิเศษกับบางตำแหน่ง
เอนเอียงผลลัพธ์ไปยังพื้นที่ที่ระบุโดยส่งพารามิเตอร์ location และพารามิเตอร์ radius
ซึ่งจะสั่งให้การเติมข้อความอัตโนมัติ (ใหม่) แสดงผลลัพธ์ภายในพื้นที่ที่กำหนด ระบบอาจยังแสดงผลลัพธ์ที่อยู่นอกพื้นที่ที่กำหนด คุณใช้พารามิเตอร์ includedRegionCodes เพื่อกรองผลลัพธ์
ให้แสดงเฉพาะสถานที่ภายในประเทศที่ระบุได้
การจำกัดตำแหน่ง
จำกัดผลการค้นหาให้อยู่ในพื้นที่ที่ระบุโดยส่งพารามิเตอร์ locationRestriction
นอกจากนี้ คุณยังจำกัดผลลัพธ์ให้แสดงเฉพาะภูมิภาคที่กำหนดโดย location
และพารามิเตอร์ radius ได้ด้วยโดยการเพิ่มพารามิเตอร์
locationRestriction
ซึ่งจะสั่งให้การเติมข้อความอัตโนมัติ (ใหม่) แสดงเฉพาะ
ผลลัพธ์ภายในภูมิภาคนั้น
ลองใช้งาน
โปรแกรมสำรวจ API ช่วยให้คุณสร้างคำขอตัวอย่างเพื่อให้คุ้นเคยกับ API และตัวเลือก API
เลือกไอคอน API api ทางด้านขวาของหน้า
แก้ไขพารามิเตอร์คำขอ (ไม่บังคับ)
เลือกปุ่มดำเนินการ ในกล่องโต้ตอบ ให้เลือกบัญชี ที่ต้องการใช้เพื่อส่งคำขอ
ในแผงโปรแกรมสำรวจ API ให้เลือกไอคอนเต็มหน้าจอ fullscreen เพื่อขยายหน้าต่างโปรแกรมสำรวจ API