Arcgis为要素图层中的每个图形设置不同的符号



我有一个功能层,它包含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文档,但找不到任何解决这一问题的内容。谢谢

如果您知道只有12条记录,并且这些记录不会被更改。。。按照以下步骤进行操作:

  1. 添加唯一值渲染器,而不是简单的渲染器
  2. 添加objectID/FID作为唯一值呈现器字段
  3. 将此新渲染器设置为要素层对象
  4. 将此层添加到地图

如果你需要更多的澄清,请告诉我。

样品:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value

注意:如果您需要确切的工作解决方案,请分享您的层休息URL。

希望这将帮助您:(

最新更新