Bing Maps:调用calculateDirections后,每转一圈添加一个PushPin

时间:2012-07-13 20:43:05

标签: bing-maps

我正在为Bing Maps制作一个“快速移动”功能。我的想法是,一旦用户点击地图,DirectionsManager类就会计算路线,这样如果用户想要制作一条舍入曲线的路线,他们就不必多次点击。他们可以点击两次,页面将完成其余的工作。 (顺便说一句,如果有人有更好的方法,请告诉我 - 这是我在解决方案上的第一次通过。)

我正在试验MSDN上的DirectionsManager示例,并减少了返回RouteLeg类的示例代码(http://msdn.microsoft.com/en-us/library/hh312823),我有这个基本代码:< / p>

function directionsModuleLoaded() {
    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);

    var startWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(42.71926499622451,-84.57241695374249) });
    var endWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(42.71390477940529,-84.5766870304942) });

    directionsManager.addWaypoint(startWaypoint);
    directionsManager.addWaypoint(endWaypoint);

    directionsManager.calculateDirections();
}

function displayMessage(e) {
    alert("The calculated route has " + e.route[0].routeLegs[0].itineraryItems.length + " direction steps.");
}

这确实有效。我输入一对Lat / Long值,它计算并显示“舍入”路线。我所希望的是一种在路线的每个部分放置PushPin的方法,其中方向发生变化,因此如果需要三条小路线转弯,则会显示PushPins,每个点都有一个两个部分相遇。这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以从DirectionManager类调用getAllWaypoints()以获取所有航点的数组。

Foreach航路点,您可以致电getLocations()获取航点对象的位置。

然后,您可以在每个位置创建图钉,方法是将waypoint.getLocations()传递给图钉constructor以及任何其他设置选项,然后将图钉添加到地图中。