Bing Maps v8 getRouteResult returns 未定义

Bing Maps v8 getRouteResult returns undefined

我正在试用新的 Bing 地图 v8。我按照这个例子:http://www.bing.com/api/maps/sdk/mapcontrol/isdk#directionsCreateTransitRoute+JS

我需要获取路由结果 (directionsManager.getRouteResult()),但是 returns undefined.

var map = new Microsoft.Maps.Map(document.getElementById('rs-mapa-elem'), {
    credentials: 'Your Bing Maps Key',
    center: new Microsoft.Maps.Location(47.606209, -122.332071),
    zoom: 12
});

Microsoft.Maps.loadModule('Microsoft.Maps.Directions', function () {
    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);

    // Set Route Mode to transit
    directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.transit });

    var waypoint1 = new Microsoft.Maps.Directions.Waypoint({ address: 'Redmond', location: new Microsoft.Maps.Location(47.67683029174805, -122.1099624633789) });
    var waypoint2 = new Microsoft.Maps.Directions.Waypoint({ address: 'Seattle', location: new Microsoft.Maps.Location(47.59977722167969, -122.33458709716797) });

    directionsManager.addWaypoint(waypoint1);
    directionsManager.addWaypoint(waypoint2);

    // Set the element in which the itinerary will be rendered
    directionsManager.setRenderOptions({ itineraryContainer: document.getElementById('printoutPanel') });
    directionsManager.calculateDirections();

   var route =directionsManager.getRouteResult();

   console.log(route); // Returns `undefined`
});

您在异步路线计算完成之前请求路线结果。

将您的 getRouteResult 调用移动到 directionsManager 对象的 directionsUpdated 事件的处理程序中,如下所示:

Microsoft.Maps.Events.addHandler(
  directionsManager,
  'directionsUpdated',
  function (directionsEvent)
  {
     var route = directionsManager.getRouteResult();
  });

您将可以访问 directionsEvent 对象中的相同属性。