Reputation: 21
I have a feature layer that contains 12 items with the same defined style. But I want to change each item to have a unique symbol when rendered.
var Layer = new FeatureLayer("http://...my map server.../0");
Layer.graphics.forEach(function (entry) {
// loop through each item
console.log(entry);
console.log(entry.attributes.FID);
var symbol = new PictureMarkerSymbol({ "url":"/images/icons/fid_" + entry.attributes.FID + ".png", "height":20, "width":20 });
entry.setSymbol(symbol);
var renderer = new esri.renderer.SimpleRenderer(symbol);
Layer.setRenderer(renderer); // <-- this appears to override all previous items
});
map.addLayer(Layer);
I omitted some code to keep this simple; what I have now sets a symbol, but it's the symbol of the last entry
that is looped for all items.
I need each entry
to have a unique symbol defined by its FID
(0-11)
I've search through ArcGIS's JavaScript API docs and can't find anything that addresses this. Thanks.
Upvotes: 1
Views: 2228
Reputation: 5443
If you know that there will be only 12 records and that are not going to be changed... Follow below steps to do this:
Let me know if you need more clarifications.
Sample: https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value
Note: if you need exact working solution please share your layer rest URL.
Hope this will help you :)
Upvotes: 2