หัวข้อสำคัญ

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

รูปแบบการเดินทาง

ใช้พารามิเตอร์ travelMode (travel_mode) ที่จำเป็นเพื่อระบุรูปแบบการขนส่ง ดังนี้

  • DRIVE: คำนวณความสามารถในการเข้าถึงสำหรับรถยนต์นั่งส่วนบุคคลตามถนนที่ขับได้โดยใช้ขีดจำกัดความเร็วที่ประกาศไว้ ลำดับชั้นของถนน บทลงโทษการเลี้ยว และสภาพการจราจรแบบเรียลไทม์ (ไม่บังคับ)
  • TWO_WHEELER: คำนวณความสามารถในการเข้าถึงสำหรับยานพาหนะที่ใช้เครื่องยนต์แบบ 2 ล้อ (เช่น มอเตอร์ไซค์หรือสกูตเตอร์) โดยใช้กฎการเข้าถึงถนนเฉพาะโหมดและความเร็วที่จำลองต่ำกว่า DRIVE บนถนนความเร็วสูง ด้วยเหตุนี้ Isochrone TWO_WHEELER จึงมักครอบคลุมพื้นที่ขนาดใหญ่กว่า BICYCLE แต่เล็กกว่า DRIVE ตามทางหลวงความเร็วสูง
  • BICYCLE: คำนวณความสามารถในการเข้าถึงสำหรับผู้ขับขี่จักรยานตามถนนที่จักรยานเข้าถึงได้ เลนจักรยาน และเส้นทางที่ใช้ร่วมกัน โดยปรับความเร็วตามประเภทถนนและความลาดชัน ไม่รวมทางมอเตอร์เวย์และทางด่วนที่มีการควบคุมการเข้าถึง
  • WALK: คำนวณความสามารถในการเข้าถึงสำหรับคนเดินเท้าตามทางเท้า ทางเดิน ทางเดินป่า และถนนที่คนเดินเท้าเข้าถึงได้ โดยปรับความเร็วในการเดินตามความลาดชัน การเดินเท้าจะละเว้นข้อจำกัดการเดินรถทางเดียว

ระยะเวลา

ข้อจำกัดหลักที่คุณระบุให้กับบริการคือ travelDuration (travel_duration) ซึ่งจะกำหนดกรอบเวลาสำหรับการคำนวณ

  • ระยะเวลาขั้นต่ำและสูงสุด: ระยะเวลาต้องมีอย่างน้อย "1s" (1 วินาที) ค่าศูนย์ ("0s") ระยะเวลาที่เป็นค่าลบ และระยะเวลาที่น้อยกว่า 1 วินาที (เช่น "0.5s") จะแสดงข้อผิดพลาด 400 INVALID_ARGUMENT API รองรับระยะเวลาเดินทางสูงสุด 3,600 วินาที (1 ชั่วโมง) สำหรับโหมด DRIVE และ TWO_WHEELER และ 7,200 วินาที (2 ชั่วโมง) สำหรับโหมด WALK และ BICYCLE
  • พื้นรูปหลายเหลี่ยมขั้นต่ำ: เนื่องจาก API แปลงส่วนของถนนที่ไปถึงเป็นเซลล์ตารางกริดเชิงพื้นที่ ระยะเวลาที่สั้นมากจะแสดงผลรูปหลายเหลี่ยมขนาดเล็กที่ครอบคลุมเซลล์ตารางกริดรอบจุดเริ่มต้นที่สแนป
  • ประสิทธิภาพ: เวลาในการคำนวณจะปรับตามระยะเวลาที่ขอและโหมดการเดินทางที่เลือก Isochrone การขับรถ 1 ชั่วโมงครอบคลุมพื้นที่ทางภูมิศาสตร์และเครือข่ายถนนที่ใหญ่กว่า Isochrone การเดิน 1 ชั่วโมงอย่างมาก ซึ่งส่งผลให้คำขอการขับรถมีเวลาในการตอบสนองสูงขึ้น
  • การจัดรูปแบบ: เนื่องจาก API ใช้ google.protobuf.Duration ระยะเวลาจึงต้องจัดรูปแบบเป็นสตริงที่ลงท้ายด้วย "s" (เช่น "3600s") แทนที่จะเป็นจำนวนเต็ม

จุดต้นทางและการสแนปถนน

คุณระบุจุดเริ่มต้นของ Isochrone ได้ 2 วิธีดังนี้

  • พิกัด (location): คู่ละติจูดและลองจิจูด ระบุทั้ง latitude (ใน [-90, 90]) และ longitude (ใน [-180, 180]) หากคุณละเว้นค่าใดค่าหนึ่ง API จะถือว่าค่าดังกล่าวเป็น 0.0 ซึ่งจะวางจุดบนเส้นศูนย์สูตรหรือเส้นเมริเดียนแรก หากคุณละเว้นทั้ง 2 รายการ ({}) หรือส่ง (0, 0) API จะแสดงข้อผิดพลาด 400 INVALID_ARGUMENT
  • รหัสสถานที่ (place): ตัวระบุที่ไม่ซ้ำกันสำหรับสถานที่หนึ่งๆ ใน Google Maps เมื่อคุณระบุรหัสสถานที่ บริการจะแปลงสถานที่นั้นเป็นพิกัดเซนทรอยด์และตรึงจุดนั้นไว้กับถนนที่ใกล้ที่สุด ใช้รูปแบบชื่อทรัพยากรที่ขึ้นต้นด้วย places/ (เช่น places/ChIJIQBpAG2ahYAR_6128GcTUEo) และยังยอมรับรหัสสถานที่เปล่าๆ ที่ไม่มีคำนำหน้า places/ ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่รหัสสถานที่

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

  • การสแนปอัจฉริยะ: บริการจะพยายามสแนปจุดต้นทางไปยังส่วนของถนนที่สัญจรได้ที่ใกล้ที่สุด
  • การรับรู้โหมด: ตรรกะการสแนปจะพิจารณาtravel_modeของคุณ หากคุณขอ DRIVE หรือ TWO_WHEELER, API จะละเว้นทางเดินเท้าเท่านั้นและมองหาถนนที่ขับรถได้ที่ใกล้ที่สุด หากคุณขอ WALK, API จะจัดลำดับความสำคัญของเส้นทางที่เดินได้และทางเท้า
  • กรณีที่ดำเนินการไม่สำเร็จ: หาก API ไม่พบส่วนถนนที่เหมาะสมภายในระยะการสแนปสูงสุดของจุดต้นทาง (ประมาณ 200 เมตร หรือน้อยกว่านั้นสำหรับ WALK และ BICYCLE) API จะแสดงข้อผิดพลาด 404 NOT_FOUND ลักษณะทางภูมิศาสตร์ขนาดใหญ่ (เช่น สวนสาธารณะ วิทยาเขต หรือจุดชมวิว) อาจมีเซนทรอยด์ของรหัสสถานที่ที่อยู่ไกลกว่าระยะการสแนปจากถนนที่ใกล้ที่สุดซึ่งใช้ได้กับโหมดการเดินทาง ในกรณีดังกล่าว ให้ส่งพิกัด location ที่ชัดเจนของทางเข้าถนนแทน

ทิศทางการเดินทาง (ขาเข้าเทียบกับขาออก)

คุณสามารถคำนวณความสามารถในการเข้าถึงทั้งขาเข้าและขาออกได้โดยใช้พารามิเตอร์ travelDirection (travel_direction) ดังนี้

  • FROM (ขาออก): คำนวณพื้นที่ที่เข้าถึงได้จากจุดต้นทางภายในขีดจำกัดเวลาที่ระบุ ซึ่งเหมาะสำหรับกรณีการใช้งาน เช่น พื้นที่นำส่งหรือความครอบคลุมของบริการ
  • TO (ขาเข้า): คำนวณพื้นที่ที่คุณสามารถเดินทางไปยังจุดต้นทางภายในขีดจำกัดเวลาที่ระบุ ซึ่งเหมาะสำหรับการกำหนดโซนที่เข้าถึงได้ เช่น พื้นที่ที่พนักงานสามารถเดินทางมายังสำนักงานกลางได้

การรับรู้การจราจร

ควบคุมวิธีที่ข้อมูลการจราจรส่งผลต่อรูปหลายเหลี่ยมที่สร้างขึ้นด้วยพารามิเตอร์ routingPreference (routing_preference) ดังนี้

  • TRAFFIC_UNAWARE (ค่าเริ่มต้น): ใช้ขีดจำกัดความเร็วในการไหลแบบอิสระและลำดับชั้นของถนนเพื่อสร้างรูปหลายเหลี่ยม Isochrone ซึ่งจะทำให้เกิดรูปร่างเชิงกำหนดที่ไม่ผันผวนตามช่วงเวลาของวัน พารามิเตอร์นี้เหมาะสําหรับการวิเคราะห์ทั่วไปหรือการวางแผนสถานการณ์พื้นฐาน
  • TRAFFIC_AWARE: คำนวณ Isochrone โดยใช้สภาพการจราจรแบบเรียลไทม์ ณ เวลาที่ประมวลผลคำขอ (ไม่สามารถกำหนดค่าการประทับเวลาการออกเดินทางหรือการมาถึงในอนาคตหรือในอดีตที่กำหนดเองได้ใน v1) ซึ่งจะทำให้พื้นที่ที่เข้าถึงได้หดตัวลงในช่วงที่มีการจราจรหนาแน่นและขยายตัวในช่วงเวลาที่มีการจราจรเบาบาง ในสภาวะที่การจราจรคล่องตัวหรือเบาบาง TRAFFIC_AWARE และ TRAFFIC_UNAWARE อาจแสดงผลรูปหลายเหลี่ยมที่เกือบจะเหมือนกัน หมายเหตุ: ระบบจะรองรับการกำหนดเส้นทางที่อิงตามสภาพการจราจรก็ต่อเมื่อตั้งค่า travelMode เป็น DRIVE หรือ TWO_WHEELER เท่านั้น

การปรับให้เรียบเนียนและความแม่นยำ

คุณสามารถปรับแต่งลักษณะและความแม่นยำของรูปหลายเหลี่ยมเอาต์พุตได้โดยใช้พารามิเตอร์ polygonFidelity (polygon_fidelity) และ enableSmoothing (enable_smoothing) แม้ว่าตัวเลือกเหล่านี้จะเป็นอิสระต่อกัน แต่ก็ทำงานร่วมกันเพื่อกำหนดรูปร่างสุดท้าย

  • polygonFidelity: ควบคุมความละเอียดของเซลล์ตารางกริดเชิงพื้นที่ที่ใช้เพื่อประมาณขอบเขตที่เข้าถึงได้

    • LOW: ใช้เซลล์ตารางกริดที่ใหญ่ที่สุด (กว้างหลายร้อยเมตร) เหมาะที่สุดสำหรับการครอบคลุมพื้นที่ขนาดใหญ่ที่มีจุดยอดน้อยกว่าและไม่มีช่องว่างภายใน ส่งผลให้ได้รูปร่างทั่วไปที่อาจประเมินพื้นที่ที่เข้าถึงได้ตามแนวถนนแคบๆ สูงเกินไป
    • MEDIUM: ความแม่นยำและจำนวนจุดยอดที่สมดุล
    • HIGH: ใช้เซลล์ตารางกริดที่เล็กที่สุด (ประมาณ 100-150 เมตร) ส่งผลให้พอดีกับเครือข่ายถนนที่เข้าถึงได้มากขึ้น แต่อาจทำให้เกิดช่องว่างภายในที่เครือข่ายถนนเบาบาง
    • POLYGON_FIDELITY_UNSPECIFIED: หากไม่ได้ระบุ บริการจะเลือกความละเอียดโดยอัตโนมัติตามรูปแบบการเดินทางและระยะเวลา โดยใช้เซลล์ที่ละเอียดกว่าสำหรับระยะเวลาสั้นๆ และสำหรับ WALK และเซลล์ที่หยาบกว่าสำหรับระยะเวลานาน หากต้องการเปรียบเทียบ Isochrone ในระยะเวลาหรือรูปแบบการเดินทางที่แตกต่างกัน ให้ตั้งค่า polygonFidelity อย่างชัดเจน
      ความแม่นยำของรูปหลายเหลี่ยมสูง ปานกลาง และต่ำ
      ความแม่นยำของรูปหลายเหลี่ยมระดับสูง ปานกลาง และต่ำ
  • enableSmoothing: ควบคุมว่าจะปัดเศษขอบขั้นบันไดของเซลล์ตารางกริดที่กำหนดโดยความแม่นยำหรือไม่

    • false (ดิบ): ค่าเริ่มต้น แสดงผลขอบเขตที่จัดแนวตารางกริด ขอบจะปรากฏเป็นขั้นบันไดตามเซลล์ตารางกริด เหมาะที่สุดสำหรับความแม่นยำในการวิเคราะห์ เช่น การทดสอบจุดในรูปหลายเหลี่ยมที่เข้มงวด
    • true (ปรับให้เรียบ): ปรับมุมที่แหลมให้โค้งมนเพื่อการแสดงผลแผนที่ที่สวยงาม โดยยังคงรักษาพื้นที่ของแต่ละวงแหวนไว้โดยประมาณ ขอบเขตจะไม่เป็นไปตามเซลล์ตารางกริดอีกต่อไป
      Isochrone แบบปรับให้ราบรื่นและไม่ปรับ
      Isochrone แบบปรับให้เรียบและไม่ปรับให้เรียบ