کتابخانه جدید مسیرها، Maps JavaScript API، شامل کلاس Route است که جایگزین سرویس قدیمی Directions میشود. این صفحه تفاوتهای بین سرویس قدیمی Directions و کلاس جدید Route را توضیح میدهد و کدی برای مقایسه ارائه میدهد.
سرویس مسیرها (Legacy) در مقابل کلاس Route
پارامترهای درخواست
جدول زیر پارامترهای درخواست برای سرویس قدیمی Directions و کلاس Route را مقایسه میکند.
مقایسه روشها
جدول زیر متدهای کلیدی سرویس قدیمی 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));