คำนวณข้อมูลสรุปการกำหนดเส้นทาง

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

  1. ส่งพารามิเตอร์ routingParameters.origin ในคำขอเพื่อระบุพิกัดละติจูดและลองจิจูดของต้นทางในการกำหนดเส้นทาง พารามิเตอร์นี้จำเป็นสำหรับการคำนวณระยะเวลาและระยะทางไปยังสถานที่แต่ละแห่งในการตอบกลับ

  2. ใส่ routingSummaries ในฟิลด์มาสก์เพื่อให้การตอบกลับมี อาร์เรย์ routingSummaries อาร์เรย์นี้มีระยะเวลาและระยะทาง จากต้นทางในการกำหนดเส้นทางไปยังสถานที่แต่ละแห่งในการตอบกลับ

โปรแกรมสำรวจ API ช่วยให้คุณส่งคำขอแบบสดได้เพื่อให้คุ้นเคยกับ API และตัวเลือก API

ในคำขอต่อไปนี้ คุณจะคำนวณระยะเวลาและระยะทางในการเดินทางไปยังสถานที่แต่ละแห่งในการตอบกลับการค้นหาข้อความ (ใหม่)

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

การตอบกลับจะมีอาร์เรย์ JSON 2 รายการ ได้แก่ อาร์เรย์ places ที่มีสถานที่ที่ตรงกัน และอาร์เรย์ routingSummaries ที่มีระยะเวลาและระยะทางในการเดินทางไปยังสถานที่แต่ละแห่ง

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

แต่ละองค์ประกอบในอาร์เรย์ routingSummaries จะอยู่ในตำแหน่งอาร์เรย์ที่สอดคล้องกับสถานที่ในอาร์เรย์ places นั่นคือ องค์ประกอบที่ routingSummaries[0] จะสอดคล้องกับสถานที่ที่ places[0]

ความยาวอาร์เรย์ของ routingSummaries จะเท่ากับความยาวอาร์เรย์ของ places ในกรณีที่ไม่มี routingSummary สำหรับสถานที่หนึ่งๆ รายการอาร์เรย์จะเป็นค่าว่าง

เนื่องจากตัวอย่างนี้คำนวณระยะเวลาและระยะทางจากต้นทางในการกำหนดเส้นทางไปยังสถานที่แต่ละแห่ง ฟิลด์ routingSummaries.legs ในการตอบกลับจึงมีออบเจ็กต์ Leg รายการเดียวที่มี duration และ distanceMeters จากต้นทางในการกำหนดเส้นทางไปยังสถานที่

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   
  ]
}

จากตัวอย่างนี้ คุณจะเห็นว่าระยะเวลาและระยะทางจากต้นทางในการกำหนดเส้นทางไปยังสถานที่แรกในผลลัพธ์คือ 597 วินาทีและ 2, 607 เมตร

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

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

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

ระบุตัวเลือกการเดินทาง

โดยค่าเริ่มต้น การคำนวณระยะเวลาและระยะทางจะเป็นการคำนวณสำหรับรถยนต์ อย่างไรก็ตาม คุณสามารถควบคุมประเภทรถยนต์ รวมถึงตัวเลือกอื่นๆ ในการค้นหาได้

  • ใช้พารามิเตอร์ routingParameters.travelMode เพื่อตั้งค่าโหมดการขนส่งเป็น DRIVE, BICYCLE, WALK, หรือ TWO_WHEELER ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ที่ประเภทรถยนต์ที่ใช้ได้สำหรับเส้นทาง

  • ใช้พร็อพเพอร์ตี้ routingParameters.routingPreference เพื่อตั้งค่าตัวเลือกการกำหนดเส้นทางเป็น TRAFFIC_UNAWARE (ค่าเริ่มต้น), TRAFFIC_AWARE, หรือ TRAFFIC_AWARE_OPTIMAL ตัวเลือกแต่ละรายการมีคุณภาพของข้อมูลและความหน่วงแฝงที่แตกต่างกัน ดูข้อมูลเพิ่มเติมได้ที่ ระบุวิธีและตำแหน่งที่จะรวมข้อมูลการจราจร ข้อมูล

    พร็อพเพอร์ตี้ routingParameters.routingPreference ส่งผลต่อเส้นทางที่มีอยู่ในฟิลด์ directionsUri เวอร์ชันตัวอย่าง (ก่อนเวอร์ชันสำหรับผู้ใช้ทั่วไป) เนื่องจาก Google Maps จะแสดงตัวเลือกการจราจรเมื่อเปิดลิงก์

  • ใช้พร็อพเพอร์ตี้ routingParameters.routeModifiers เพื่อระบุ avoidTolls, avoidHighways, avoidFerries, และ avoidIndoor ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ได้ที่ระบุฟีเจอร์เส้นทางที่จะหลีกเลี่ยง

ในตัวอย่างถัดไป คุณจะระบุโหมดการเดินทางเป็น DRIVE และระบุให้หลีกเลี่ยงทางหลวง

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

ลองใช้งาน

โปรแกรมสำรวจ API ช่วยให้คุณส่งคำขอตัวอย่างได้เพื่อให้คุ้นเคยกับ API และตัวเลือก API

  1. เลือกไอคอน API api ทางด้านขวาของหน้า

  2. เลือกแก้ไขพารามิเตอร์คำขอ (ไม่บังคับ)

  3. เลือกปุ่มดำเนินการ ในกล่องโต้ตอบ ให้เลือกบัญชี ที่ต้องการใช้ส่งคำขอ

  4. ในแผงโปรแกรมสำรวจ API ให้เลือกไอคอนเต็มหน้าจอ fullscreen เพื่อขยายหน้าต่างโปรแกรมสำรวจ API