【问题标题】:Arcgis javascript - Set different symbol for each graphic in feature layerArcgis javascript - 为要素图层中的每个图形设置不同的符号
【发布时间】:2015-09-20 11:32:44
【问题描述】:

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

【问题讨论】:

    标签: javascript arcgis arcgis-server arcgis-js-api


    【解决方案1】:

    如果您知道只有 12 条记录并且不会更改... 请按照以下步骤执行此操作:

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

    如果您需要更多说明,请告诉我。

    示例:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value

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

    希望对你有帮助:)

    【讨论】:

    • 完美。谢谢你:)
    猜你喜欢
    • 2020-08-08
    • 2019-03-29
    • 2016-11-23
    • 2017-07-01
    • 2018-06-20
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多