I would go with approach #1??? destroying and re-creating your map will be easier to manage than removing and then adding new layers to a map. As for your legend not updating, are you using map.addLayers (notice that layers is plural)? Using addLayers should fire onLayersAddResult. It would be helpful if you could post your code showing exactly what you're doing.Here's an example showing using legend.destroy() to get rid of a legend and then re-create it: http://jsfiddle.net/UKNrr/ Notice that the dom element for the legend is created as part of the call to the legend constructor.