Arcgis javascript - 为要素图层中的每个图形设置不同的符号
Arcgis javascript - Set different symbol for each graphic in feature layer
我有一个要素图层,其中包含 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 条记录并且不会更改...
请按照以下步骤执行此操作:
- 添加唯一值渲染器而不是简单渲染器。
- 添加 objectID/FID 作为唯一值呈现器字段。
- 将此新渲染器设置为要素层对象。
- 将此图层添加到地图。
如果您需要更多说明,请告诉我。
样本:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value
注意:如果您需要确切的工作解决方案,请分享您的图层休息 URL。
希望这对您有所帮助:)
我有一个要素图层,其中包含 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 条记录并且不会更改... 请按照以下步骤执行此操作:
- 添加唯一值渲染器而不是简单渲染器。
- 添加 objectID/FID 作为唯一值呈现器字段。
- 将此新渲染器设置为要素层对象。
- 将此图层添加到地图。
如果您需要更多说明,请告诉我。
样本:https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=renderer_unique_value
注意:如果您需要确切的工作解决方案,请分享您的图层休息 URL。
希望这对您有所帮助:)