หากต้องการสร้าง Isochrone ให้ระบุต้นทาง, โหมดการเดินทาง เช่น การขับรถ, การขับขี่รถจักรยานยนต์, การปั่นจักรยาน หรือการเดิน และขีดจำกัดเวลาให้กับ API นอกจากนี้ คุณยังปรับค่ากำหนดการกำหนดเส้นทางและลักษณะที่ปรากฏของรูปหลายเหลี่ยมที่ได้อีกด้วย
รูปแบบการเดินทาง
ใช้พารามิเตอร์ travelMode (travel_mode) ที่จำเป็นเพื่อระบุรูปแบบการขนส่ง ดังนี้
DRIVE: คำนวณความสามารถในการเข้าถึงสำหรับรถยนต์นั่งส่วนบุคคลตามถนนที่ขับได้โดยใช้ขีดจำกัดความเร็วที่ประกาศไว้ ลำดับชั้นของถนน บทลงโทษการเลี้ยว และสภาพการจราจรแบบเรียลไทม์ (ไม่บังคับ)TWO_WHEELER: คำนวณความสามารถในการเข้าถึงสำหรับยานพาหนะที่ใช้เครื่องยนต์แบบ 2 ล้อ (เช่น มอเตอร์ไซค์หรือสกูตเตอร์) โดยใช้กฎการเข้าถึงถนนเฉพาะโหมดและความเร็วที่จำลองต่ำกว่าDRIVEบนถนนความเร็วสูง ด้วยเหตุนี้ IsochroneTWO_WHEELERจึงมักครอบคลุมพื้นที่ขนาดใหญ่กว่าBICYCLEแต่เล็กกว่าDRIVEตามทางหลวงความเร็วสูงBICYCLE: คำนวณความสามารถในการเข้าถึงสำหรับผู้ขับขี่จักรยานตามถนนที่จักรยานเข้าถึงได้ เลนจักรยาน และเส้นทางที่ใช้ร่วมกัน โดยปรับความเร็วตามประเภทถนนและความลาดชัน ไม่รวมทางมอเตอร์เวย์และทางด่วนที่มีการควบคุมการเข้าถึงWALK: คำนวณความสามารถในการเข้าถึงสำหรับคนเดินเท้าตามทางเท้า ทางเดิน ทางเดินป่า และถนนที่คนเดินเท้าเข้าถึงได้ โดยปรับความเร็วในการเดินตามความลาดชัน การเดินเท้าจะละเว้นข้อจำกัดการเดินรถทางเดียว
ระยะเวลา
ข้อจำกัดหลักที่คุณระบุให้กับบริการคือ travelDuration (travel_duration) ซึ่งจะกำหนดกรอบเวลาสำหรับการคำนวณ
- ระยะเวลาขั้นต่ำและสูงสุด: ระยะเวลาต้องมีอย่างน้อย
"1s"(1 วินาที) ค่าศูนย์ ("0s") ระยะเวลาที่เป็นค่าลบ และระยะเวลาที่น้อยกว่า 1 วินาที (เช่น"0.5s") จะแสดงข้อผิดพลาด400 INVALID_ARGUMENTAPI รองรับระยะเวลาเดินทางสูงสุด 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 แบบปรับให้เรียบและไม่ปรับให้เรียบ