Route sınıfına taşıma

Maps JavaScript API'nin yeni Rotalar Kitaplığı, Route sınıfını içerir. Bu sınıf, eski Directions Hizmeti'nin yerini alır. Bu sayfada, eski yol tarifi hizmeti ile yeni Route sınıfı arasındaki farklar açıklanmakta ve karşılaştırma için bazı kodlar verilmektedir.

Yol tarifi hizmeti (Eski) ve Rota sınıfı (Beta) karşılaştırması

İstek parametreleri

Aşağıdaki tabloda, eski Directions hizmeti ve Route sınıfı için istek parametreleri karşılaştırılmaktadır.

Yol Tarifi Hizmeti (Eski) Route (Beta)
DirectionsService.route() yöntemi Route.computeRoutes() yöntemi

Gerekli Parametreler

origin origin
destination destination
travelMode travelMode (isteğe bağlı)

İsteğe bağlı parametreler

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

Yöntem karşılaştırması

Aşağıdaki tabloda, eski Directions hizmeti ve Route sınıfı için temel yöntemler karşılaştırılmaktadır.

Yol Tarifi Hizmeti (Eski) Route (Beta)
route() yöntemi computeRoutes() yöntemi
DirectionsRenderer.setDirections() yöntemi createPolylines() yöntemi, createWaypointAdvancedMarkers() yöntemi

Kod karşılaştırması

Bu bölümde, eski Directions hizmeti ile yeni Route sınıfı arasındaki farkları göstermek için iki benzer kod parçası karşılaştırılmaktadır. Kod snippet'leri, her bir API'de yol tarifi isteğinde bulunmak için gereken kodu gösterir ve ardından sonucu, haritada bir poliline ve işaretçiler çizmek için kullanır.

Eski yol tarifi hizmetinde, bir haritada yol tarifi sonuçlarını göstermek için çoklu çizgileri ve işaretçileri görüntülemek üzere DirectionsRenderer nesnesi kullanılır. Rotalar kitaplığında, DirectionsRenderer nesnesi createPolylines() ve createWaypointAdvancedMarkers() yöntemleriyle değiştirildi. Bu sayfada, eski Directions Service ile yeni Route sınıfı arasındaki farklar açıklanmakta ve karşılaştırma için bazı kodlar verilmektedir.

Yol tarifi alın

Yol tarifi hizmeti (Eski)

Aşağıdaki kod, eski Directions hizmetini kullanarak yol tarifi alır ve ardından haritada bir çoklu çizgi ve işaretçi çizmek için DirectionsRenderer kullanır:

// 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.
  }
});

Rota sınıfı (Beta)

Aşağıdaki kod, yeni Rota sınıfını kullanarak yol tarifi alır, ardından createPolylines yöntemini kullanarak haritada bir çoklu çizgi çizer ve createWaypointAdvancedMarkers yöntemini kullanarak haritada işaretçiler çizer.

Yeni Route sınıfı, işaretçileri otomatik olarak oluşturmaz. İşaretçileri oluşturmak için createWaypointAdvancedMarkers numaralı telefonu aramanız gerekir.

// 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));