เลือกข้อมูลที่จะส่งคืน

เมื่อเรียกใช้เมธอดเพื่อคำนวณเส้นทางหรือคำนวณเมทริกซ์เส้นทาง คุณต้องระบุข้อมูลที่ต้องการโดยการระบุช่องที่คุณต้องการให้แสดงผลในคำตอบ จะไม่มีรายการเริ่มต้นของฟิลด์ที่แสดงผล ถ้าคุณข้ามรายการนี้ไป เมธอด จะส่งกลับข้อผิดพลาด

คุณระบุรายการช่องโดยการสร้างมาสก์ช่องการตอบกลับ จากนั้นคุณจะส่งมาสก์ช่องคำตอบไปยังวิธีการใดวิธีการหนึ่งได้โดยใช้พารามิเตอร์ของ URL $fields หรือ fields หรือใช้ส่วนหัว HTTP หรือ gRPC X-Goog-FieldMask

การมาสก์ช่องคือการออกแบบที่ดีเพื่อให้คุณไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการประมวลผลและค่าใช้จ่ายที่เรียกเก็บโดยไม่จำเป็น

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของ URL ได้ที่พารามิเตอร์ระบบ

กำหนดมาสก์ของช่องคำตอบ

มาสก์ช่องการตอบกลับคือรายการเส้นทางที่คั่นด้วยคอมมา ซึ่งแต่ละเส้นทางจะระบุช่องที่ไม่ซ้ำกันในข้อความตอบกลับ โดยเส้นทางจะเริ่มต้นจากข้อความตอบกลับระดับบนสุดและใช้เส้นทางที่คั่นด้วยจุดไปยังช่องที่ระบุ

สร้างเส้นทางฟิลด์ดังนี้

topLevelField[.secondLevelField][.thirdLevelField][...]
  • มาสก์ของช่องเส้นทางการประมวลผล
    • REST: ระบุช่องของออบเจ็กต์ Route ในการตอบสนองที่จะส่งคืน ซึ่งขึ้นต้นด้วย routes. เช่น routes.distanceMeters
    • gRPC: ระบุช่องของออบเจ็กต์เส้นทางในการตอบสนองที่จะแสดง
  • มาสก์ช่องเมทริกซ์เส้นทางการประมวลผล

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างมาสก์ฟิลด์ได้ที่ field_mask.proto

กำหนดว่าจะใช้มาสก์ฟิลด์ใด

วิธีระบุฟิลด์มาสก์ที่ต้องการใช้มีดังนี้

  1. ขอช่องทั้งหมดโดยใช้ฟิลด์มาสก์ *
  2. ดูลำดับชั้นของช่องในคำตอบแล้วกำหนดช่องที่ต้องการ
  3. สร้างฟิลด์มาสก์โดยใช้ลำดับชั้นของฟิลด์

เช่น สำหรับการตอบสนองบางส่วนนี้จากเส้นทางขนส่งสาธารณะ

 "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 เพื่อขอโทเค็น ดังนี้

  1. ตั้งค่า travel_mode เป็น DRIVING
  2. โปรดตั้งค่า routing_preference เป็น TRAFFIC_AWARE หรือ TRAFFIC_AWARE_OPTIMAL
  3. ตรวจสอบว่าไม่มีจุดอ้างอิงของเส้นทางที่เป็นจุดอ้างอิง via จุด
  4. ระบุมาสก์ของช่องโทเค็นเส้นทางดังนี้
    -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