我必须像这样画多个方向:
A->B B->C C->D
在同一张地图上
这个工作很好,但是当我试图删除B->C时,方向仍然在地图上。
要画一个方向,我这样做:
directionsDisplay = new google.maps.DirectionsRenderer({
suppressMarkers: true,
polylineOptions: polylineOptionsActual,
preserveViewport: true
});
createItinerary : function(eventA, eventB, transportationMode, counter)
{
if (eventDate.getDate() == currentDay.getDate())
directionsDisplay.setDirections(result);
}
然后,每次我删除一条路,我打电话给
if (directionsDisplay != null)
{
directionsDisplay.setMap(null);
directionsDisplay = null;
}
我可以随时调用它,即使directionDisplay为null,方向也不会被移除。
只有当我有多个方向时才会出现这个错误。
你知道哪里出了问题吗?
是的,你有directionsDisplay = new google.maps.DirectionsRenderer…在循环中。你要做的是,将变量存储在数组中。
示例(我假设有for循环):
var directionsDisplayArray = [];
for(var i in data) {
directionsDisplay = new google.maps.DirectionsRenderer({
suppressMarkers: true,
polylineOptions: polylineOptionsActual,
preserveViewport: true
});
directionsDisplayArray.push(directionsDisplay);
}
然后可以在循环中删除这些显示
for(var i in directionsDisplayArray) {
directionsDisplayArray[i].setMap(null);
}