คำนวณสรุปการกำหนดเส้นทาง

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

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

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

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

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

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 วินาทีและ 2607 เมตร

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

  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 มีผลต่อเส้นทางที่อยู่ในฟิลด์ตัวอย่าง (ก่อน GA) 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