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

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

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

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของ URL โปรดดู พารามิเตอร์ระบบ

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

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

สร้างและระบุเส้นทางช่องดังนี้

  1. ค้นหาช่องที่มีข้อมูลที่คุณต้องการจาก Routes API โปรดดูรายละเอียดที่การอ้างอิงช่อง
  2. ระบุเส้นทางสำหรับช่องที่ต้องการและสร้างมาสก์ของช่องสำหรับช่องนั้น: โปรดดูรายละเอียดที่หัวข้อกำหนดมาสก์ช่องที่ต้องการใช้
  3. รวมมาสก์ของช่องสำหรับทุกช่องที่ต้องการ โดยคั่นมาสก์ของช่องด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น หากต้องการขอ distanceMeters สำหรับขาของเส้นทาง รวมถึงระยะเวลาของแต่ละขั้นตอนของเส้นทาง ให้ป้อนทั้ง 2 แบบโดยคั่นด้วยคอมมาโดยไม่ต้องเว้นวรรค

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. ส่งมาสก์ของช่องด้วยคำขอ API ตัวอย่างเช่น ในคำขอ cURL คุณจะระบุมาสก์ของช่องด้วย -H และ X-Goog-FieldMask ดังนี้

    -H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
สำหรับตัวอย่างและรายละเอียดเพิ่มเติม โปรดดูหัวข้อต่อไปนี้

การอ้างอิงช่อง

หากต้องการดูช่องที่คุณขอในคำตอบผ่านมาสก์ของช่อง โปรดดูข้อมูลอ้างอิงของ Routes API ที่ลิงก์ในรายการต่อไปนี้ ระบุช่องด้วยตัวพิมพ์ใหญ่แบบอูฐตามที่แสดงในการอ้างอิง เช่น routePreference

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

  • มาสก์ฟิลด์เส้นทางการประมวลผล
    • REST: ระบุฟิลด์ของ ออบเจ็กต์ Route ใน การตอบสนองต่อการคืนสินค้า ซึ่งนำหน้าด้วย routes. routes.distanceMeters
    • gRPC: ระบุฟิลด์ของ ออบเจ็กต์ Route ใน การตอบกลับ
  • มาสก์ฟิลด์สำหรับเมตริกซ์เส้นทางประมวลผล

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

ต่อไปนี้คือวิธีที่คุณสามารถระบุช่องที่ต้องการใช้ และสร้างมาสก์ของช่องสำหรับช่องดังกล่าว

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

    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 แสดงโทเค็นเส้นทางสำหรับเส้นทางที่สร้างขึ้น ให้ทำตามขั้นตอนต่อไปนี้

  1. ตั้งค่าพารามิเตอร์ต่อไปนี้ซึ่งจําเป็นต่อการส่งคืนโทเค็นเส้นทาง
    • ตั้งค่า travelMode เป็น DRIVE
    • โปรดตั้งค่า routingPreference เป็น TRAFFIC_AWARE หรือ TRAFFIC_AWARE_OPTIMAL
  2. ตรวจสอบว่าไม่มีจุดอ้างอิงของเส้นทางที่เป็นจุดอ้างอิง via จุด
  3. ระบุมาสก์ของช่อง routes.routeToken เพื่อแสดงผลโทเค็นเส้นทาง วันที่
    X-Goog-FieldMask: routes.routeToken

คุณสามารถใช้โทเค็นเส้นทางสำหรับเส้นทางที่วางแผนใน 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'

ดูรายละเอียดเพิ่มเติมได้ที่ เอกสารอ้างอิง API เส้นทางการประมวลผล