我正在为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,每个点都有一个两个部分相遇。这可能吗?
答案 0 :(得分:0)
您可以从DirectionManager类调用getAllWaypoints()以获取所有航点的数组。
Foreach航路点,您可以致电getLocations()获取航点对象的位置。
然后,您可以在每个位置创建图钉,方法是将waypoint.getLocations()传递给图钉constructor以及任何其他设置选项,然后将图钉添加到地图中。