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

Avrupa Ekonomik Alanı'ndaki (AEA) geliştiriciler

Yeni Rotalar Kitaplığı, Maps JavaScript API, eski Directions Hizmeti'nin yerini alan Route sınıfını içerir. 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.

Directions hizmeti (eski) ile Route sınıfı 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.

Directions Service (Eski) Route
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.

Directions Service (Eski) Route
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, yol tarifi isteği göndermek için her bir API'de gereken kodu gösterir ve ardından sonucu kullanarak harita üzerinde bir çoklu çizgi ve işaretçiler çizer.

Eski Directions hizmetinde, haritadaki yönlendirici sonuçları temsil eden çoklu çizgileri ve işaretçileri görüntülemek için DirectionsRenderer nesnesi kullanılır. Routes 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 Service'i kullanarak arabayla yol tarifi alır ve ardından harita üzerinde çoklu çizgi ve işaretçiler ç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ı

Aşağıdaki kod, yeni Route sınıfını kullanarak arabayla yol tarifi alır, ardından haritada çoklu çizgi çizmek için createPolylines yöntemini ve haritada işaretçi çizmek için createWaypointAdvancedMarkers yöntemini kullanır.

Yeni Route sınıfı, işaretçileri otomatik olarak oluşturmaz. İşaretçileri oluşturmak için createWaypointAdvancedMarkers yöntemini çağırmanız gerekir.

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