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

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

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

سرویس مسیرها (Legacy) در مقابل کلاس 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() 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 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, fallbackInfo, geocodingResults} = await Route.computeRoutes(request);

// Use createPolylines to create polylines 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));

جاوا اسکریپت

// 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, fallbackInfo, geocodingResults } = await Route.computeRoutes(request);
// Use createPolylines to create polylines 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));