เลือกข้อมูลที่จะแสดง
เมื่อเรียกใช้เมธอดเพื่อคํานวณเส้นทางหรือเมทริกซ์เส้นทาง คุณต้องระบุข้อมูลที่ต้องการโดยระบุช่องที่จะแสดงในการตอบกลับ ไม่มีรายการเริ่มต้นของฟิลด์ที่แสดงผล หากคุณละเว้นรายการนี้ เมธอดจะแสดงข้อผิดพลาด
คุณระบุรายการช่องได้โดยสร้างมาสก์ช่องคำตอบ จากนั้นส่งมาสก์ช่องการตอบกลับไปยังเมธอดใดเมธอดหนึ่งโดยใช้พารามิเตอร์ URL $fields
หรือ fields
หรือใช้ส่วนหัว HTTP หรือ gRPC X-Goog-FieldMask
การใช้มาสก์ฟิลด์เป็นแนวทางปฏิบัติด้านการออกแบบที่ดีเพื่อให้มั่นใจว่าคุณไม่ได้ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลที่ไม่จำเป็นและการเรียกเก็บเงิน
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของ URL ได้ที่พารามิเตอร์ของระบบ
กำหนดมาสก์ฟิลด์คำตอบ
หน้ากากฟิลด์คำตอบคือรายการเส้นทางที่คั่นด้วยคอมมา โดยที่แต่ละเส้นทางจะระบุฟิลด์ที่ไม่ซ้ำกันในข้อความตอบกลับ โดยเส้นทางจะเริ่มต้นจากข้อความตอบกลับระดับบนสุด และใช้เส้นทางที่คั่นด้วยจุดไปยังช่องที่ระบุ
สร้างและระบุเส้นทางฟิลด์ดังนี้
- ค้นหาช่องที่มีข้อมูลที่คุณต้องการจาก Routes API โปรดดูรายละเอียดที่หัวข้อการอ้างอิงช่อง
- กำหนดเส้นทางสำหรับช่องที่ต้องการและสร้างฟิลด์มาสก์สำหรับช่องเหล่านั้น: ดูรายละเอียดที่หัวข้อกำหนดฟิลด์มาสก์ที่ต้องการใช้
รวมมาสก์ฟิลด์สำหรับฟิลด์ทั้งหมดที่ต้องการ โดยคั่นมาสก์ฟิลด์ด้วยคอมมา เช่น หากต้องการขอ
distanceMeters
สำหรับเส้นทาง รวมถึงระยะเวลาของขั้นตอนแต่ละขั้นของเส้นทาง ให้ป้อนทั้ง 2 รายการโดยคั่นด้วยคอมมา โดยไม่ต้องเว้นวรรคroutes.legs.distanceMeters,routes.legs.steps.duration
ส่งมาสก์ฟิลด์พร้อมกับคำขอ API ตัวอย่างเช่น ในคําขอ cURL คุณจะต้องระบุฟิลด์มาสก์ด้วย
-H
และX-Goog-FieldMask
-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
การอ้างอิงฟิลด์
หากต้องการดูช่องที่คุณขอในการตอบกลับผ่านมาสก์ฟิลด์ โปรดดูข้อมูลอ้างอิง Routes API ที่ลิงก์ไว้ในรายการต่อไปนี้ ระบุฟิลด์ในรูปแบบ Camel Case ตามที่แสดงในข้อมูลอ้างอิง เช่น routePreference
การอ้างอิงเหล่านี้รวมถึงช่องที่ใช้ได้ อย่างไรก็ตาม คุณต้องดูลําดับชั้นของช่องเพื่อกําหนดเส้นทางมาสก์ช่องแบบเต็ม โปรดดูรายละเอียดเกี่ยวกับการรับลําดับชั้นของช่องที่หัวข้อกําหนดว่าต้องการใช้มาสก์ฟิลด์ใด
- มาสก์ช่องเส้นทางของ Compute
- คํานวณมาสก์ช่องเมตริกเส้นทาง
- REST: ระบุช่องของเนื้อหาคำตอบที่จะแสดง
- gRPC: ระบุช่องของออบเจ็กต์ RouteMatrixElement ในคำตอบที่จะแสดง
กำหนดว่าจะใช้มาสก์ฟิลด์ใด
วิธีระบุช่องที่ต้องการใช้และสร้างมาสก์ช่องมีดังนี้
- ขอข้อมูลทุกช่องโดยใช้มาสก์ฟิลด์
*
- ดูลําดับชั้นของช่องในการตอบกลับสําหรับช่องที่ต้องการ
สร้างมาสก์ช่องโดยใช้ลําดับชั้นของช่องที่แสดงในขั้นตอนก่อนหน้า โดยใช้รูปแบบนี้
topLevelField[.secondLevelField][.thirdLevelField][...]
ตัวอย่างเช่น สำหรับคำตอบบางส่วนจากเส้นทางนี้
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
หากต้องการแสดงเฉพาะช่อง distanceMeters
สำหรับส่วนของเส้นทาง ซึ่งก็คือ distanceMeters
สุดท้ายในตัวอย่างก่อนหน้า มาสก์ฟิลด์จะเป็นดังนี้
routes.legs.distanceMeters
หากต้องการแสดงผลฟิลด์ distanceMeters
สำหรับแต่ละขั้นตอนของเส้นทางแทน ซึ่งก็คือ distanceMeters
ในส่วน steps
ในตัวอย่างก่อนหน้านี้ มาสก์ฟิลด์จะเป็นดังนี้
routes.legs.steps.distanceMeters
หากต้องการแสดงผลทั้ง 2 รายการพร้อมผลลัพธ์ด้านบน มาสก์ฟิลด์จะเป็นดังนี้
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
ตัวอย่างเส้นทางฟิลด์มาสก์
ส่วนนี้มีตัวอย่างเพิ่มเติมเกี่ยวกับวิธีระบุเส้นทางฟิลด์เป็นส่วนหนึ่งของมาสก์ฟิลด์คำตอบในการเรียก REST และ gRPC
การเรียก REST ไปยัง computeRoutes
ในตัวอย่างแรก คุณใช้การเรียก REST กับเมธอด computeRoutes
เพื่อคํานวณเส้นทาง ในตัวอย่างนี้ คุณระบุมาสก์ช่องในส่วนหัวเพื่อแสดงผลช่องเส้นทาง distanceMeters
และ duration
ในการตอบกลับ อย่าลืมใส่ routes
นําหน้าชื่อช่อง
X-Goog-FieldMask: routes.distanceMeters,routes.duration
การเรียก REST ไปยัง computeRouteMatrix
สําหรับเมธอด REST computeRouteMatrix
ที่ใช้ในการคํานวณเมทริกซ์เส้นทาง ให้ระบุในส่วนหัวเพื่อแสดงผล originIndex
, destinationIndex
และ duration
สําหรับชุดค่าผสมต้นทางและปลายทางแต่ละชุด
X-Goog-FieldMask: originIndex,destinationIndex,duration
การเรียกใช้ gRPC
สําหรับ gRPC ให้ตั้งค่าตัวแปรที่มีมาสก์ช่องการตอบกลับ จากนั้นคุณสามารถส่งตัวแปรนั้นไปยังคําขอได้
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
ข้อควรพิจารณาเกี่ยวกับเส้นทางฟิลด์
ใส่เฉพาะช่องที่ต้องการในการตอบกลับเพื่อแสดงเฉพาะช่องที่ต้องการ
- ลดเวลาในการประมวลผลเพื่อให้ผลลัพธ์แสดงขึ้นโดยใช้เวลาในการตอบสนองต่ำลง
- ช่วยให้เวลาในการตอบสนองมีเสถียร หากคุณเลือกช่องทั้งหมดหรือเลือกช่องทั้งหมดที่ระดับบนสุด คุณอาจพบว่าประสิทธิภาพลดลงเมื่อมีการเพิ่มช่องใหม่และรวมไว้ในคำตอบโดยอัตโนมัติ
- ส่งผลให้คำตอบมีขนาดเล็กลง ซึ่งทำให้อัตราการส่งข้อมูลของเครือข่ายสูงขึ้น
- ช่วยให้คุณไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและการเรียกเก็บเงินที่ไม่จำเป็น
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการสร้างมาสก์ฟิลด์ได้ที่ field_mask.proto
ขอโทเค็นเส้นทาง
หากต้องการขอให้ Routes API แสดงโทเค็นเส้นทางสําหรับเส้นทางที่สร้างขึ้น ให้ทําตามขั้นตอนต่อไปนี้
- ตั้งค่าพารามิเตอร์ต่อไปนี้ที่จําเป็นในการแสดงผลโทเค็นเส้นทาง
- ตั้งค่า
travelMode
เป็นDRIVE
- ตั้งค่า
routingPreference
เป็นTRAFFIC_AWARE
หรือTRAFFIC_AWARE_OPTIMAL
- ตั้งค่า
- ตรวจสอบว่าจุดแวะพักของเส้นทางไม่ใช่จุดแวะพัก
via
- ระบุมาสก์ฟิลด์
routes.routeToken
เพื่อแสดงผลโทเค็นเส้นทางX-Goog-FieldMask: routes.routeToken
คุณสามารถใช้โทเค็นเส้นทางสำหรับเส้นทางที่วางแผนไว้ใน Navigation SDK ดูรายละเอียดเพิ่มเติมได้ที่วางแผนเส้นทาง (Android) หรือวางแผนเส้นทาง (iOS)
ตัวอย่างโทเค็นเส้นทาง
ต่อไปนี้คือตัวอย่างเนื้อหาคำขอ cURL สำหรับเส้นทางต้นทางเดียวปลายทางเดียว โดยใช้มาสก์ช่องเพื่อขอโทเค็นเส้นทาง พร้อมกับระยะเวลา ระยะทาง และรูปหลายเหลี่ยมของเส้นทาง
curl -X POST -d {"origin":{ "location": { "latLng":{ "latitude": -37.8167, "longitude": 144.9619 } } }, "destination":{ "location": { "latLng":{ "latitude":-37.8155, "longitude": 144.9663 } } }, "routingPreference":"TRAFFIC_AWARE", "travelMode":"DRIVE" } -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H X-Goog-FieldMask: routes.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
โปรดดูรายละเอียดเพิ่มเติมในข้อมูลอ้างอิง Compute Routes API