Routes Library ใหม่ของ Maps JavaScript API มีคลาส Route ซึ่งจะมาแทนที่
Directions Service เดิม หน้านี้จะอธิบายความแตกต่างระหว่าง Directions Service เดิมกับคลาส Route
ใหม่ พร้อมแสดงโค้ดบางส่วนเพื่อเปรียบเทียบ
Directions Service (เดิม) กับคลาส Route
พารามิเตอร์คำขอ
ตารางต่อไปนี้จะเปรียบเทียบพารามิเตอร์คำขอสำหรับ Directions Service เดิมกับ
Route คลาส
การเปรียบเทียบเมธอด
ตารางต่อไปนี้จะเปรียบเทียบเมธอดหลักสำหรับ Directions Service เดิมกับคลาส
Route
| Directions Service (เดิม) | Route |
|---|---|
เมธอดroute() |
computeRoutes() เมธอด |
DirectionsRenderer.setDirections() เมธอด |
createPolylines() เมธอด,
createWaypointAdvancedMarkers() เมธอด
|
การเปรียบเทียบโค้ด
ส่วนนี้จะเปรียบเทียบโค้ด 2 ส่วนที่คล้ายกันเพื่อแสดงความแตกต่างระหว่าง Directions Service เดิมกับคลาส Route ใหม่ ข้อมูลโค้ดจะแสดงโค้ด
ที่จำเป็นใน API แต่ละรายการเพื่อสร้างคำขอเส้นทาง จากนั้นใช้ผลลัพธ์เพื่อวาดเส้นประกอบและเครื่องหมายบนแผนที่
ใน Directions Service เดิม ระบบจะใช้
DirectionsRenderer
เพื่อแสดงเส้นประกอบและเครื่องหมายเพื่อแสดงผลลัพธ์เส้นทางบนแผนที่ ใน Routes Library ระบบได้แทนที่ออบเจ็กต์ DirectionsRenderer ด้วยเมธอด createPolylines() และ createWaypointAdvancedMarkers() หน้านี้จะอธิบายความแตกต่างระหว่าง Directions Service เดิมกับคลาสใหม่
Route พร้อมแสดงโค้ดบางส่วนเพื่อเปรียบเทียบ
ขอเส้นทางการขับขี่
Directions Service (เดิม)
โค้ดต่อไปนี้จะขอเส้นทางการขับขี่โดยใช้ Directions Service เดิม จากนั้นใช้
DirectionsRenderer เพื่อวาดเส้นประกอบและเครื่องหมายบนแผนที่
// Define a simple request. var request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING' }; // Call the Directions Service to get the directions. directionsService.route(request, function(result, status) { if (status == 'OK') { directionsRenderer.setDirections(result); // Add polyline and markers to the map. } });
คลาส Route
โค้ดต่อไปนี้จะขอเส้นทางการขับขี่โดยใช้คลาส Route ใหม่ จากนั้น
ใช้เมธอด createPolylines เพื่อวาดเส้นประกอบบนแผนที่ และ
เมธอด createWaypointAdvancedMarkers เพื่อวาดเครื่องหมายบนแผนที่
คลาส Route ใหม่จะไม่แสดงเครื่องหมายโดยอัตโนมัติ คุณต้องเรียกใช้
createWaypointAdvancedMarkers เพื่อแสดงเครื่องหมาย
TypeScript
// Define a routes request. const request: google.maps.routes.ComputeRoutesRequest = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. }; // Call computeRoutes to get the directions. const { routes } = await Route.computeRoutes(request); // Use createPolylines to create polylines for the route. if (!routes) { console.warn('No routes found.'); return; } mapPolylines = routes[0].createPolylines(); // Add polylines to the map. mapPolylines.forEach((polyline) => { polyline.setMap(map); }); // Create markers to start and end points. const markers = await routes[0].createWaypointAdvancedMarkers(); // Add markers to the map markers.forEach((marker) => { marker.map = map; });
JavaScript
// Define a routes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. }; // Call computeRoutes to get the directions. const { routes } = await Route.computeRoutes(request); // Use createPolylines to create polylines for the route. if (!routes) { console.warn('No routes found.'); return; } mapPolylines = routes[0].createPolylines(); // Add polylines to the map. mapPolylines.forEach((polyline) => { polyline.setMap(map); }); // Create markers to start and end points. const markers = await routes[0].createWaypointAdvancedMarkers(); // Add markers to the map markers.forEach((marker) => { marker.map = map; });