我有一个功能层,其中包含12个具有相同定义样式的项目。但是我希望在渲染时更改每个项目以获得唯一的符号。
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);
我省略了一些代码来保持这个简单;我现在设置了一个符号,但它是所有项目循环的最后一个entry
的符号。
我需要每个entry
都有一个由FID
定义的唯一符号(0-11)
我搜索了ArcGIS的JavaScript API文档,找不到解决此问题的任何内容。感谢。
答案 0 :(得分:1)
如果您知道将只有12条记录而且不会被更改... 请按照以下步骤执行此操作:
如果您需要更多说明,请与我们联系。
示例:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value
注意:如果您需要准确的工作解决方案,请分享您的图层休息网址。
希望这会对你有所帮助:)。