Bing Maps v8 getRouteResult返回undefined

时间:2016-09-29 14:56:55

标签: maps bing bing-api bing-maps

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

我需要获取路由结果(directionsManager.getRouteResult()),但返回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`
});

1 个答案:

答案 0 :(得分:2)

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

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

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

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