به کلاس Route مهاجرت کنید

کتابخانه مسیرهای جدید، Maps JavaScript API شامل کلاس Route است که جایگزین سرویس Directions قدیمی می شود. این صفحه تفاوت‌های بین سرویس مسیرهای قدیمی و کلاس جدید Route را توضیح می‌دهد و کدی را برای مقایسه ارائه می‌کند.

سرویس مسیرها (قدیمی) در مقابل کلاس مسیر (بتا)

درخواست پارامترها

جدول زیر پارامترهای درخواست را برای سرویس Directions قدیمی و کلاس Route مقایسه می کند.

خدمات مسیرها (قدیمی) Route (بتا)
متد DirectionsService.route() . روش Route.computeRoutes() .

پارامترهای مورد نیاز

origin origin
destination destination
travelMode travelMode (اختیاری)

پارامترهای اختیاری

optimizeWaypoints optimizeWaypointOrder
provideRouteAlternatives computeAlternativeRoutes
avoidFerries ، avoidHighways ، avoidTolls routeModifiers
drivingOptions departureTime , trafficModel
region region
transitOptions transitPreference
arrivalTime arrivalTime
unitSystem units
waypoints intermediates

مقایسه روش ها

جدول زیر متدهای کلیدی را برای سرویس Directions قدیمی و کلاس Route مقایسه می کند.

خدمات مسیرها (قدیمی) Route (بتا)
روش route() . computeRoutes()
متد DirectionsRenderer.setDirections() . متد createPolylines() ، متد createWaypointAdvancedMarkers() .

مقایسه کدها

این بخش دو قطعه کد مشابه را با هم مقایسه می‌کند تا تفاوت‌های بین سرویس Directions قدیمی و کلاس Route جدید را نشان دهد. قطعه کد کد مورد نیاز در هر API مربوطه را برای ایجاد یک درخواست جهت نشان می دهد و سپس از نتیجه برای ترسیم چند خط و نشانگرها روی نقشه استفاده می کند.

در سرویس Directions قدیمی، شی DirectionsRenderer برای نمایش چند خطوط و نشانگرها برای نمایش نتایج جهت ها بر روی نقشه استفاده می شود. در کتابخانه Routes، شی DirectionsRenderer با متدهای createPolylines() و createWaypointAdvancedMarkers() جایگزین شده است. این صفحه تفاوت‌های بین سرویس Directions قدیمی و کلاس Route جدید را توضیح می‌دهد و کدی برای مقایسه ارائه می‌کند.

مسیرهای رانندگی را دریافت کنید

خدمات مسیرها (قدیمی)

کد زیر با استفاده از سرویس قدیمی Directions مسیرهای رانندگی را دریافت می کند و سپس از 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 جدید جهت رانندگی را دریافت می کند، سپس از متد createPolylines برای ترسیم چند خط روی نقشه و از متد createWaypointAdvancedMarkers برای ترسیم نشانگرها روی نقشه استفاده می کند.

کلاس Route جدید به طور خودکار نشانگرها را ارائه نمی کند. برای ارائه نشانگرها باید createWaypointAdvancedMarkers فراخوانی کنید.

// Define a simple request.
const request = {
  origin: 'Mountain View, CA',
  destination: 'San Francisco, CA',
  travelMode: 'DRIVING',
  fields: ['path', 'legs'], // Request fields needed to draw polylines.
};

// Call computeRoutes to get the directions.
const {routes} = await Route.computeRoutes(request);

// Use createPolylines to create a polyline for the route.
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.setMap(map));