เลือกข้อมูลที่จะแสดง
เมื่อเรียกใช้เมธอดเพื่อคำนวณเส้นทางหรือคำนวณเมทริกซ์เส้นทาง คุณต้องระบุข้อมูลที่ต้องการโดยระบุช่องที่ต้องการให้แสดงผลในคำตอบ ไม่มีรายการเริ่มต้นของช่องที่ส่งคืน หากคุณไม่ใช้รายการนี้ เมธอดจะแสดงผลข้อผิดพลาด
คุณระบุรายการช่องโดยการสร้างมาสก์ฟิลด์การตอบกลับ จากนั้นคุณจะส่งมาสก์ของช่องคำตอบไปยังเมธอดใดวิธีการหนึ่งได้โดยใช้พารามิเตอร์ของ URL $fields
หรือ fields
หรือใช้ส่วนหัว HTTP หรือ gRPC X-Goog-FieldMask
การมาสก์ฟิลด์เป็นแนวทางปฏิบัติในการออกแบบที่ดีเพื่อให้คุณไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและค่าใช้จ่ายที่เรียกเก็บโดยไม่จำเป็น
ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของ URL ได้ที่พารามิเตอร์ระบบ
กำหนดมาสก์ของช่องการตอบกลับ
มาสก์ของช่องการตอบกลับเป็นรายการเส้นทางที่คั่นด้วยคอมมา ซึ่งแต่ละเส้นทางจะระบุช่องที่ไม่ซ้ำกันในข้อความตอบกลับ โดยเส้นทางนี้จะเริ่มจากข้อความตอบกลับระดับบนสุดและใช้เส้นทางที่คั่นด้วยจุดไปยังช่องที่ระบุ
สร้างเส้นทางช่องดังนี้
topLevelField[.secondLevelField][.thirdLevelField][...]
- มาสก์ของช่องเส้นทางการประมวลผล
- มาสก์ฟิลด์เมทริกซ์เส้นทางการประมวลผล
- REST: ระบุช่องของเนื้อหาการตอบกลับที่จะแสดงผล
- gRPC: ระบุช่องของออบเจ็กต์ RouteMatrixElement ในการตอบสนองที่จะแสดง
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างฟิลด์มาสก์ได้ที่ field_mask.proto
กำหนดว่าจะใช้มาสก์ฟิลด์ใด
วิธีกำหนดฟิลด์มาสก์ที่ต้องการใช้มีดังนี้
- ขอช่องทั้งหมดโดยใช้ฟิลด์มาสก์
*
- ดูลำดับชั้นของช่องในคำตอบแล้วกำหนดช่องที่ต้องการ
- สร้างฟิลด์มาสก์โดยใช้ลำดับชั้นฟิลด์
เช่น ในการตอบกลับบางส่วนจากเส้นทางขนส่งสาธารณะนี้
"routes": [ { "legs": [ { "distanceMeters": 12886, } ... ]}]
หากต้องการแสดงผลเฉพาะช่อง distanceMeters
มาสก์ของช่องข้อมูลจะเป็นดังนี้
routes.legs.distanceMeters
อีกตัวอย่างหนึ่ง: หากต้องการแสดงผลทุกอย่างภายใต้ legs
ในการตอบสนอง ฟิลด์มาสก์ของคุณคือ
routes.legs
ระบุเส้นทางช่อง
ส่วนนี้ประกอบด้วยตัวอย่างเกี่ยวกับวิธีระบุเส้นทางช่องเพื่อเป็นส่วนหนึ่งของมาสก์ฟิลด์การตอบกลับ
การเรียก REST ไปยัง computeRoutes
ในตัวอย่างแรก คุณใช้การเรียก REST ไปยังเมธอด computeRoutes
เพื่อคำนวณเส้นทาง ในตัวอย่างนี้ คุณระบุมาสก์ของช่องที่จะแสดงผลช่อง Route.distanceMeters
และ Route.duration
ในส่วนหัวในส่วนหัว อย่าลืมใส่คำนำหน้าชื่อช่องด้วย routes
-H X-Goog-FieldMask: routes.distanceMeters,routes.duration
การเรียก REST ไปยัง computeRouteMatrix
สำหรับเมธอด REST computeRouteMatrix
ที่ใช้ในการคำนวณเมทริกซ์เส้นทาง ให้ระบุเพื่อแสดงผล originIndex
, destinationIndex
และ duration
ในส่วนหัวสำหรับชุดค่าผสมของต้นทางและปลายทาง ดังนี้
-H X-Goog-FieldMask: originIndex,destinationIndex,duration
การเรียกใช้ gRPC
สำหรับ gRPC ให้ตั้งค่าตัวแปรที่มีมาสก์ฟิลด์การตอบสนอง จากนั้นคุณจะส่งตัวแปรดังกล่าวไปยังคำขอได้
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
ข้อควรพิจารณาเกี่ยวกับเส้นทางช่อง
รวมเฉพาะช่องที่คุณต้องการในคำตอบ การแสดงผลเฉพาะช่องที่ต้องการ
- ลดเวลาในการประมวลผล เพื่อแสดงผลลัพธ์โดยใช้เวลาในการตอบสนองต่ำลง
- คงประสิทธิภาพของเวลาในการตอบสนองที่เสถียรหาก API เพิ่มช่องการตอบกลับเพิ่มเติมในอนาคต และช่องใหม่เหล่านั้นต้องใช้เวลาในการคำนวณเพิ่มเติม หากเลือกช่องทั้งหมดหรือเลือกช่องทั้งหมดที่ระดับบนสุด ประสิทธิภาพอาจลดลงเมื่อช่องใหม่ทั้งหมดรวมอยู่ในคำตอบโดยอัตโนมัติ
- ทำให้การตอบสนองมีขนาดเล็กลง ซึ่งส่งผลให้อัตราการส่งข้อมูลของเครือข่ายสูงขึ้น
- ดูแลไม่ให้คุณขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาที่ไม่จำเป็นในการประมวลผลและค่าใช้จ่ายที่เรียกเก็บ
ขอโทเค็นเส้นทาง
หากต้องการขอให้ Routes API แสดงผลโทเค็นเส้นทางสำหรับเส้นทางที่สร้างขึ้น ให้ทำตามข้อกำหนดในการส่งคืนโทเค็นเส้นทาง แล้วใช้มาสก์ของช่อง routes.route_token
เพื่อขอโทเค็น ดังนี้
- ตั้งค่า
travel_mode
เป็นDRIVING
- โปรดตั้งค่า
routing_preference
เป็นTRAFFIC_AWARE
หรือTRAFFIC_AWARE_OPTIMAL
- ตรวจสอบว่าไม่มีจุดอ้างอิงของเส้นทางที่เป็นจุดอ้างอิง
via
จุด - ระบุมาสก์ของช่องโทเค็นเส้นทาง ดังนี้
-H X-Goog-FieldMask: routes.route_token
คุณใช้เส้นทางที่วางแผนได้ใน 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.route_token,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
ดูรายละเอียดเพิ่มเติมได้ที่เอกสารอ้างอิงสำหรับ Compute Routes API