บทนำ
การเติมข้อความอัตโนมัติ (ใหม่) เป็นบริการบนเว็บที่แสดงผลการคาดคะเนสถานที่และการคาดคะเนคำค้นหาเพื่อตอบสนองต่อคำขอ HTTP ในคำขอ ให้ระบุสตริงการค้นหาข้อความและขอบเขตทางภูมิศาสตร์ที่ควบคุมพื้นที่การค้นหา
การเติมข้อความอัตโนมัติ (ใหม่) สามารถจับคู่คำที่สมบูรณ์และสตริงย่อยของอินพุต โดยจะแปลงชื่อสถานที่ ที่อยู่ และ Plus Code ดังนั้น แอปพลิเคชันจึงสามารถส่งคำค้นหาขณะที่ผู้ใช้พิมพ์ เพื่อแสดงการคาดคะเนสถานที่และคำค้นหาได้ทันที
การตอบกลับจากการเติมข้อความอัตโนมัติ (ใหม่) อาจมีการคาดคะเน 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) |
|
|
รายการที่คั่นด้วยคอมมาซึ่งระบุช่องที่จะแสดงผลในการตอบกลับ |
จำกัดผลการค้นหาเฉพาะสถานที่ที่ตรงกับประเภทหลักที่ระบุไว้สูงสุด 5 ประเภท |
|
หากเป็นจริง จะรวมธุรกิจที่ไม่มีสถานที่ตั้งจริง (ธุรกิจที่ให้บริการตามสถานที่) ค่าเริ่มต้นคือ "เท็จ" |
|
หากเป็น "จริง" จะรวมทั้งการคาดคะเนสถานที่และการค้นหาไว้ในการตอบกลับ ค่าเริ่มต้นคือ "เท็จ" |
|
อาร์เรย์ของรหัสประเทศ 2 อักขระสูงสุด 15 รหัสเพื่อจำกัดผลลัพธ์ |
|
ออฟเซ็ตอักขระ Unicode แบบ Zero-Based ของตำแหน่งเคอร์เซอร์ภายในสตริงอินพุต ซึ่งส่งผลต่อการคาดคะเน ค่าเริ่มต้นคือความยาวของอินพุต |
|
ภาษาที่ต้องการ (รหัส 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
สถานที่หนึ่งๆ จะมีประเภทหลักได้เพียงประเภทเดียวจากประเภทที่แสดงในตาราง ก หรือตาราง ข เช่น ประเภทหลักอาจเป็น "mexican_restaurant" หรือ "steak_house"
โดยค่าเริ่มต้น API จะแสดงสถานที่ทั้งหมดตามพารามิเตอร์ input โดยไม่คำนึงถึงค่าประเภทหลักที่เชื่อมโยงกับสถานที่นั้น จำกัดผลลัพธ์ให้เป็นประเภทหลักที่เฉพาะเจาะจงหรือประเภทหลักโดยส่งพารามิเตอร์ includedPrimaryTypes
ใช้พารามิเตอร์นี้เพื่อระบุค่าประเภทได้สูงสุด 5 ค่าจากตาราง ก หรือตาราง ข สถานที่ต้องตรงกับค่าประเภทหลักที่ระบุค่าใดค่าหนึ่งจึงจะรวมอยู่ในการตอบกลับ
พารามิเตอร์นี้อาจรวม (regions) หรือ (cities) แทนด้วย คอลเล็กชันประเภท (regions) จะกรองพื้นที่หรือเขต เช่น ย่านและรหัสไปรษณีย์ คอลเล็กชันประเภท (cities) จะกรองสถานที่ที่ Google ระบุว่าเป็นเมือง
ระบบจะปฏิเสธคำขอพร้อมข้อผิดพลาด INVALID_REQUEST ในกรณีต่อไปนี้
- ระบุมากกว่า 5 ประเภท
- มีการระบุประเภทใดๆ นอกเหนือจาก
(cities)หรือ(regions) - มีการระบุประเภทที่ไม่รู้จัก
includePureServiceAreaBusinesses
หากตั้งค่าเป็น true การตอบกลับจะรวมธุรกิจที่เข้าพบหรือส่งสินค้าให้ลูกค้าโดยตรง แต่ไม่มีสถานที่ตั้งธุรกิจจริง หากตั้งค่าเป็น false API จะแสดงเฉพาะธุรกิจที่มีสถานที่ตั้งจริงเท่านั้น
includeQueryPredictions
หากเป็น true การตอบกลับจะรวมทั้งการคาดคะเนสถานที่และการค้นหา ค่าเริ่มต้นคือ false ซึ่งหมายความว่าการตอบกลับจะมีเฉพาะการคาดคะเนสถานที่เท่านั้น
includedRegionCodes
รวมเฉพาะผลลัพธ์จากรายการภูมิภาคที่ระบุ ซึ่งระบุเป็นอาร์เรย์ของค่า ccTLD ("โดเมนระดับบนสุด") 2 อักขระสูงสุด 15 รายการ หากละเว้น ระบบจะไม่ใช้ข้อจำกัดกับการตอบกลับ เช่น หากต้องการจำกัดภูมิภาคเป็นเยอรมนีและฝรั่งเศส ให้ทำดังนี้
"includedRegionCodes": ["de", "fr"]
หากคุณระบุทั้ง locationRestriction และ includedRegionCodes ผลลัพธ์จะอยู่ในพื้นที่ที่การตั้งค่าทั้ง 2 รายการตัดกัน
inputOffset
ออฟเซ็ตอักขระ Unicode แบบ Zero-Based ที่ระบุตำแหน่งเคอร์เซอร์ใน input
ตำแหน่งเคอร์เซอร์อาจส่งผลต่อการคาดคะเนที่แสดงผล หากเว้นว่างไว้ ระบบจะใช้ค่าเริ่มต้นเป็นความยาวของ input
languageCode
ภาษาที่ต้องการให้แสดงผลลัพธ์ ผลลัพธ์อาจเป็นภาษาผสมหากภาษาที่ใช้ใน input แตกต่างจากค่าที่ระบุโดย languageCode หรือหากสถานที่ที่แสดงผลไม่มีคำแปลจากภาษาท้องถิ่นเป็น languageCode
- คุณต้องใช้รหัสภาษา IETF BCP-47 เพื่อระบุภาษาที่ต้องการ
-
หากไม่ได้ระบุ
languageCodeไว้ API จะใช้ค่าที่ระบุไว้ในส่วนหัว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
รหัสภูมิภาคที่ใช้จัดรูปแบบการตอบกลับ ซึ่งระบุเป็นค่า ccTLD ("โดเมนระดับบนสุด") 2 อักขระ รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคคือ "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")
นอกจากนี้ คำแนะนำยังอิงตามรหัสภูมิภาคด้วย Google ขอแนะนำให้ตั้งค่า regionCode ตามค่ากำหนดตามพื้นที่ของผู้ใช้
หากคุณระบุรหัสภูมิภาคที่ไม่ถูกต้อง API จะแสดงข้อผิดพลาด INVALID_ARGUMENT พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง
เมื่อตั้งค่า regionCode การคาดคะเนภายในภูมิภาคนั้นอาจละชื่อประเทศออกจากข้อความคำแนะนำ ซึ่งหมายความว่า structuredFormat.secondaryText อาจไม่แสดง ดังนั้น โปรดตรวจสอบว่าแอปพลิเคชันของคุณจัดการกรณีที่
ไม่ได้กำหนด หรือไม่มี secondaryText
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 เพื่อจำกัดการค้นหาให้อยู่ในวิวพอร์ตสี่เหลี่ยมผืนผ้าได้ด้วย ตัวอย่างต่อไปนี้จะจำกัดคำขอให้อยู่ในย่านใจกลางเมืองซานฟรานซิสโก
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 เพื่อให้น้ำหนักการค้นหาไปที่วิวพอร์ตสี่เหลี่ยมผืนผ้าได้ด้วย ตัวอย่างต่อไปนี้จะจำกัดคำขอให้อยู่ในย่านใจกลางเมืองซานฟรานซิสโก
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 ค่าจากตาราง A, ตาราง B หรือเฉพาะ (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 อย่าแสดงระยะทางเป็นศูนย์แก่ผู้ใช้เพื่อหลีกเลี่ยงการทำให้ผู้ใช้เข้าใจผิด
การเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)
ส่วนนี้จะอธิบายแนวทางปฏิบัติแนะนำเพื่อช่วยให้คุณใช้ประโยชน์จากบริการเติมข้อความอัตโนมัติ (ใหม่) ได้อย่างเต็มที่
หลักเกณฑ์ทั่วไปมีดังนี้
- วิธีที่เร็วที่สุดในการพัฒนาอินเทอร์เฟซผู้ใช้ที่ใช้งานได้คือการใช้ วิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Maps JavaScript API, วิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Places SDK สำหรับ Android หรือวิดเจ็ตการเติมข้อความอัตโนมัติ (ใหม่) ของ Places SDK สำหรับ iOS
- ทำความเข้าใจฟิลด์ข้อมูลที่สำคัญของการเติมข้อความอัตโนมัติ (ใหม่) ตั้งแต่เริ่มต้น
- ช่องการให้น้ำหนักสถานที่ตั้งและการจำกัดสถานที่ตั้งเป็นช่องที่ไม่บังคับ แต่ส่งผลต่อประสิทธิภาพการเติมข้อความอัตโนมัติอย่างมาก
- ใช้การจัดการข้อผิดพลาดเพื่อให้แน่ใจว่าแอปจะลดระดับลงอย่างราบรื่นหาก API แสดงข้อผิดพลาด
- ตรวจสอบว่าแอปของคุณจัดการกรณีที่ไม่มีการเลือกและเสนอวิธีให้ผู้ใช้ดำเนินการต่อ
แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพต้นทุน
การเพิ่มประสิทธิภาพต้นทุนพื้นฐาน
หากต้องการเพิ่มประสิทธิภาพค่าใช้จ่ายในการใช้บริการเติมข้อความอัตโนมัติ (ใหม่) ให้ใช้มาสก์ฟิลด์ในวิดเจ็ตรายละเอียดสถานที่ (ใหม่) และเติมข้อความอัตโนมัติ (ใหม่) เพื่อแสดงเฉพาะฟิลด์ข้อมูลของการเติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ
การเพิ่มประสิทธิภาพต้นทุนขั้นสูง
พิจารณาการติดตั้งใช้งาน Autocomplete (ใหม่) แบบเป็นโปรแกรมเพื่อเข้าถึง SKU: ราคาคำขอเติมข้อความอัตโนมัติ และขอผลลัพธ์ Geocoding API เกี่ยวกับสถานที่ที่เลือกแทนรายละเอียดสถานที่ (ใหม่) ราคาต่อคำขอที่จับคู่กับ Geocoding API จะคุ้มค่ากว่าราคาต่อเซสชัน (อิงตามเซสชัน) หากเป็นไปตามเงื่อนไขทั้ง 2 ข้อต่อไปนี้
- หากต้องการเพียงละติจูดและลองจิจูดหรือที่อยู่ของสถานที่ที่ผู้ใช้เลือก Geocoding API จะแสดงข้อมูลนี้โดยมีค่าใช้จ่ายน้อยกว่าการเรียกใช้รายละเอียดสถานที่ (ใหม่)
- หากผู้ใช้เลือกการคาดคะเนการเติมข้อความอัตโนมัติภายในคำขอการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) โดยเฉลี่ย 4 รายการหรือน้อยกว่า การกำหนดราคาต่อคำขออาจคุ้มค่ากว่าการกำหนดราคาต่อเซสชัน
| สิ่งที่ต้องระบุในใบสมัคร | คำขอเติมข้อความอัตโนมัติ (ใหม่) โดยเฉลี่ยก่อนที่ผู้ใช้จะเลือกการคาดคะเน | การติดตั้งใช้งานที่แนะนํา |
|---|---|---|
| รายละเอียดสถานที่นอกเหนือจากที่อยู่และสถานที่ตั้ง เช่น ชื่อสถานที่ สถานะธุรกิจ หรือเวลาทำการ | เท่าใดก็ได้ | การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) พร้อมรายละเอียดสถานที่ (ใหม่) |
| เฉพาะที่อยู่และละติจูด/ลองจิจูดของการคาดคะเนที่เลือก | 4 รายการหรือน้อยกว่า | การเติมข้อความอัตโนมัติตามคำขอ (ใหม่) ด้วย Geocoding API |
| เฉพาะที่อยู่และละติจูด/ลองจิจูดของการคาดคะเนที่เลือก | มากกว่า 4 คน | การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) สำหรับแอปพลิเคชันที่ใช้ที่อยู่เท่านั้น |
Geocoding API อาจเป็นตัวเลือกที่คุ้มค่ากว่ารายละเอียดสถานที่ (ใหม่) สำหรับแอปพลิเคชันของคุณ ทั้งนี้ขึ้นอยู่กับประสิทธิภาพการใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ประสิทธิภาพของ Autocomplete (ใหม่) ของแต่ละแอปพลิเคชันจะแตกต่างกันไปตามสิ่งที่ผู้ใช้ป้อน สถานที่ที่ใช้แอปพลิเคชัน และมีการใช้แนวทางปฏิบัติแนะนำในการเพิ่มประสิทธิภาพหรือไม่
หากต้องการค้นหาจำนวนคำขอเฉลี่ยสำหรับตาราง ให้วิเคราะห์จำนวนอักขระที่ผู้ใช้พิมพ์โดยเฉลี่ยก่อนเลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) ในแอปพลิเคชัน
การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) พร้อมรายละเอียดสถานที่ (ใหม่)
ใช้การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) กับรายละเอียดสถานที่ (ใหม่)
เนื่องจากแอปพลิเคชันของคุณต้องใช้รายละเอียดสถานที่ (ใหม่) เช่น ชื่อสถานที่ สถานะธุรกิจ
หรือเวลาทำการ การใช้งานการเติมข้อความอัตโนมัติ (ใหม่) จึงควรใช้โทเค็นของเซสชัน
(แบบเป็นโปรแกรมหรือฝังอยู่ในวิดเจ็ต
JavaScript,
Android
หรือ iOS)
ต่อเซสชัน บวกกับ SKU ของ Places ที่เกี่ยวข้อง
โดยขึ้นอยู่กับฟิลด์ข้อมูลสถานที่ที่คุณขอ1
การติดตั้งใช้งานวิดเจ็ต
การจัดการเซสชันจะติดตั้งมาในวิดเจ็ต JavaScript, Android หรือ iOS โดยอัตโนมัติ ซึ่งรวมถึงทั้งคำขอการเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ในการคาดคะเนที่เลือก อย่าลืมระบุพารามิเตอร์ fields เพื่อให้มั่นใจว่าคุณขอเฉพาะฟิลด์ข้อมูลการเติมข้อความอัตโนมัติ (ใหม่) ที่ต้องการเท่านั้น
การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้โทเค็นของเซสชันกับคำขอเติมข้อความอัตโนมัติ (ใหม่) เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้
- รหัสสถานที่จากการตอบกลับการเติมข้อความอัตโนมัติ (ใหม่)
- โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
- พารามิเตอร์
fieldsที่ระบุฟิลด์ข้อมูลของการเติมข้อความอัตโนมัติ (ใหม่) ที่คุณต้องการ
การเติมข้อความอัตโนมัติ (ใหม่) ต่อคำขอด้วย Geocoding API
ใช้การเติมข้อความอัตโนมัติ (ใหม่) แบบเป็นโปรแกรมโดยไม่มีโทเค็นของเซสชัน และเรียกใช้ Geocoding API ในการคาดคะเนสถานที่ที่เลือก
Geocoding API จะแสดงที่อยู่และพิกัดละติจูด/ลองจิจูด
การส่งคำขอ Autocomplete Requests 4 รายการบวกกับการเรียกใช้ Geocoding API เกี่ยวกับการคาดคะเนสถานที่ที่เลือกจะมีค่าใช้จ่ายน้อยกว่าการใช้ Autocomplete (ใหม่) ต่อเซสชัน1
ลองใช้แนวทางปฏิบัติแนะนำด้านประสิทธิภาพเพื่อช่วยให้ผู้ใช้ได้รับการคาดคะเนที่ต้องการโดยใช้อักขระน้อยลง
การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) สำหรับแอปพลิเคชันที่ใช้ที่อยู่เท่านั้น
ใช้การเติมข้อความอัตโนมัติตามเซสชัน (ใหม่) กับรายละเอียดสถานที่ (ใหม่)
เนื่องจากจำนวนคำขอโดยเฉลี่ยที่คุณคาดว่าจะทำก่อนที่ผู้ใช้จะเลือกการคาดคะเนการเติมข้อความอัตโนมัติ (ใหม่) เกินค่าใช้จ่ายของการกำหนดราคาต่อเซสชัน การใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ของคุณจึงควรใช้โทเค็นของเซสชันสำหรับทั้งคำขอการเติมข้อความอัตโนมัติ (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ที่เกี่ยวข้อง
ต่อเซสชัน
1
การติดตั้งใช้งานวิดเจ็ต
การจัดการเซสชันจะติดตั้งมาในวิดเจ็ต JavaScript, Android หรือ iOS โดยอัตโนมัติ ซึ่งรวมถึงทั้งคำขอ Autocomplete (ใหม่) และคำขอรายละเอียดสถานที่ (ใหม่) ในการคาดคะเนที่เลือก อย่าลืมระบุพารามิเตอร์ fields เพื่อให้แน่ใจว่าคุณขอเฉพาะช่องที่ต้องการเท่านั้น
การติดตั้งใช้งานแบบเป็นโปรแกรม
ใช้โทเค็นของเซสชันกับคำขอเติมข้อความอัตโนมัติ (ใหม่)
เมื่อขอรายละเอียดสถานที่ (ใหม่) เกี่ยวกับการคาดคะเนที่เลือก ให้ใส่พารามิเตอร์ต่อไปนี้
- รหัสสถานที่จากการตอบกลับการเติมข้อความอัตโนมัติ (ใหม่)
- โทเค็นของเซสชันที่ใช้ในคำขอการเติมข้อความอัตโนมัติ (ใหม่)
- พารามิเตอร์
fieldsที่ระบุ ช่อง เช่น ที่อยู่และเรขาคณิต
พิจารณาการหน่วงเวลาคำขอเติมข้อความอัตโนมัติ (ใหม่)
คุณสามารถใช้กลยุทธ์ต่างๆ เช่น การหน่วงเวลาคำขอเติมข้อความอัตโนมัติ (ใหม่) จนกว่าผู้ใช้จะพิมพ์อักขระ 3 หรือ 4 ตัวแรก เพื่อให้แอปพลิเคชันส่งคำขอน้อยลง ตัวอย่างเช่น การส่งคำขอ Autocomplete (ใหม่) สำหรับอักขระแต่ละตัวหลังจากที่ผู้ใช้พิมพ์อักขระตัวที่ 3 หมายความว่าหากผู้ใช้พิมพ์อักขระ 7 ตัวแล้วเลือกการคาดคะเนที่คุณส่งคำขอ Geocoding API 1 รายการ ค่าใช้จ่ายทั้งหมดจะเป็นค่าใช้จ่ายสำหรับ Autocomplete (ใหม่) 4 รายการต่อคำขอ + Geocoding1
หากการหน่วงเวลาคำขอทำให้คำขอแบบเป็นโปรแกรมโดยเฉลี่ยต่ำกว่า 4 รายการได้ คุณสามารถทำตามคำแนะนำสำหรับการติดตั้งใช้งาน Autocomplete (ใหม่) ที่มีประสิทธิภาพด้วย Geocoding API โปรดทราบว่าการหน่วงเวลาคำขออาจทำให้ผู้ใช้ที่คาดหวังว่าจะเห็นการคาดคะเนทุกครั้งที่กดแป้นพิมพ์ใหม่มองว่าเป็นเวลาในการตอบสนอง
ลองใช้แนวทางปฏิบัติแนะนำด้านประสิทธิภาพเพื่อช่วยให้ผู้ใช้ได้รับการคาดคะเนที่ต้องการโดยใช้อักขระน้อยลง
-
ดูค่าใช้จ่ายได้ที่รายการราคาของ Google Maps Platform
แนวทางปฏิบัติแนะนำด้านประสิทธิภาพ
หลักเกณฑ์ต่อไปนี้อธิบายวิธีเพิ่มประสิทธิภาพการเติมข้อความอัตโนมัติ (ใหม่)
- เพิ่มข้อจำกัดในแต่ละประเทศ การให้น้ำหนักตามสถานที่ตั้ง และค่ากำหนดภาษา (สำหรับการติดตั้งใช้งานแบบเป็นโปรแกรม) ลงในการติดตั้งใช้งานการเติมข้อความอัตโนมัติ (ใหม่) ไม่จำเป็นต้องใช้ค่ากำหนดภาษาสำหรับวิดเจ็ต เนื่องจากวิดเจ็ตจะเลือกค่ากำหนดภาษาจากเบราว์เซอร์หรืออุปกรณ์เคลื่อนที่ของผู้ใช้
- หากการเติมข้อความอัตโนมัติ (ใหม่) มาพร้อมกับแผนที่ คุณสามารถให้น้ำหนักสถานที่ตั้งตามวิวพอร์ตของแผนที่ได้
- ในสถานการณ์ที่ผู้ใช้ไม่ได้เลือกการคาดคะเนของ Autocomplete (ใหม่) รายการใดรายการหนึ่ง โดยทั่วไปเป็นเพราะไม่มีการคาดคะเนใดที่เป็นที่อยู่ผลลัพธ์ที่ต้องการ คุณสามารถนำข้อมูลที่ผู้ใช้ป้อนไว้ในตอนแรกมาใช้ซ้ำเพื่อพยายามรับผลลัพธ์ที่เกี่ยวข้องมากขึ้นได้ ดังนี้
- หากคาดว่าผู้ใช้จะป้อนเฉพาะข้อมูลที่อยู่ ให้นำข้อมูลที่ผู้ใช้ป้อนไว้เดิมมาใช้ซ้ำในการเรียกใช้ 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