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

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

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

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

  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'