I have a dynamicMapServiceLayer that I am using to build a map application. There are about 10 layers in the mapservice that I am toggling using the setVisibleLayers action.

I would like to build my own custom, dynamic map legend. When a layers' visiblity is toggled, the corresponding legend item would also hide() / show()

My mapServer has a url that links to a page with all the corresponding legend items like below except my legend's url has 10 legend items


Is there a way I can access the individual legend items (Name and symbol) from a existing mapServer? I am comfortable building the legend, I just need to know how to access the layers' symbols which I will then append to a legend dialog.

I should also mention that I am avoiding using DOJO and using pure javascript and jQuery.

1 Answer 1


If you access that service via the REST API:


You can get the JSON using jQuery http://api.jquery.com/jQuery.getJSON/ So build the legend yourself from that data you have retrieved.

To add the legend symbols, you can use jQuery to create an img, and insert each legend item's contentType and imageData into the src to render the symbol.


Make sense?

  • stu... this sounds great. let me hack away at this for a while and see how it goes
    – jotamon
    Commented Mar 7, 2013 at 22:16
  • A couple of things. One, don't use pretty=true as it's unnecessary and uses extra server resources. Secondly, you can get at a layer's symbol by getting render.symbol or an array from renderer.infos[].symbol. But keep in mind the map creator may have used a 'SimpleMarkerSymbol', 'SimpleCircleSymbol' etc. Commented Jan 14, 2014 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.