我正在使用renderDirections和requestDirections方法创建循环中调用的多个路由,现在我想在调用该循环之前清除它们,因为即使没有路由数据,它也会显示过去的数据。 PS:当没有数据是有方法不叫,但它表明先前路线如何删除谷歌地图中的所有路线?
下面是我的示例代码来设置路线:
function renderDirections(result, Driver) {
var directionsRenderer = new google.maps.DirectionsRenderer({ suppressMarkers: false,preserveViewport: true, polylineOptions: { strokeColor: colors[cur] } });
directionsRenderer.setMap(map);
directionsRenderer.setDirections(result);
var leg = result.routes[0].legs[0];
makeMarker(leg.start_location, Driver);
makeMarker(leg.end_location, Driver);
cur++;
}
功能requestDirections(开始,结束,WPS,驱动程序){
var directionsService = new google.maps.DirectionsService;
directionsService.route(
{
origin: start,
destination: end,
waypoints: wps,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function (result) {
renderDirections(result, Driver);
});
}
directionsRenderer.setMap(NULL); –
删除旧路线时不起作用 – ankita25
每次调用renderDirections()时,都会创建新的渲染器实例。将渲染器的初始化放在全局级别上,并只保留一个'google.maps.DirectionsRenderer()'实例。在这种情况下'directionsRenderer.setMap(null); '应该工作。 – xomena