2017-07-14 96 views
0

當我需要在directionsUpdated塞汀通過拖動&降新行駛路線或路線改變清除地圖層,所述功能map.layers.clear()刪除移除路由折線路線。Bing地圖V8 - 清除層從地圖視圖

任何想法?

var map = new Microsoft.Maps.Map(document.getElementById('myMap'), { 
    credentials: 'Your Bing Maps Key', 
    center: new Microsoft.Maps.Location(47.606209, -122.332071), 
    zoom: 12 
}); 

addPushpins(); 

Microsoft.Maps.loadModule('Microsoft.Maps.Directions', function() { 
    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map); 
    // Set Route Mode to driving 
    directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.driving }); 
    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(); 

    Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', onUpdateDirections); 
}); 

function onUpdateDirections() { 
    map.layers.clear(); 
    addPushpins(); 
} 

function addPushpins() { 
    // Generate an array of 10 random pushpins within current map bounds 
    var pushpins = Microsoft.Maps.TestDataGenerator.getPushpins(10, map.getBounds()); 
    var layer = new Microsoft.Maps.Layer(); 
    layer.add(pushpins); 
    map.layers.insert(layer); 
} 

回答

0

這是設計。路線數據使用它自己的一層進行渲染。如果您清除地圖上的所有圖層,則方向也會消失。對於您的數據,請重新使用一層,而不是像這樣:

var map = new Microsoft.Maps.Map(document.getElementById('myMap'), { 
    credentials: 'Your Bing Maps Key', 
    center: new Microsoft.Maps.Location(47.606209, -122.332071), 
    zoom: 12 
}); 

var layer = new Microsoft.Maps.Layer(); 
map.layers.insert(layer); 

addPushpins(); 

Microsoft.Maps.loadModule('Microsoft.Maps.Directions', function() { 
    var directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map); 
    // Set Route Mode to driving 
    directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.driving }); 
    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(); 

    Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', onUpdateDirections); 
}); 

function onUpdateDirections() { 
    layer.clear(); 
    addPushpins(); 
} 

function addPushpins() { 
    // Generate an array of 10 random pushpins within current map bounds 
    var pushpins = Microsoft.Maps.TestDataGenerator.getPushpins(10, map.getBounds()); 
    layer.add(pushpins); 
}