如何还原 ESRI arcgis 中的图形符号

How to revert the symbol of graphic in ESRI arcgis

我有一个要素图层并向 select 图形添加了点击事件。在 selection 上,我更改了符号以显示图形是 selected.

如下代码

var symbol;
switch (graphic.geometry.type) {
    case "point":
        //symbol for point geometry
        symbol = new SimpleMarkerSymbol(
        SimpleMarkerSymbol.STYLE_CIRCLE, 12,
        new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
        new Color([ 247, 0, 171, 0.9 ]), 2),
        new Color([ 0, 255, 255, 255.25 ]), 0.5);
        break;

    case "polyline":
    case "polygon":
        //symbol for Polygon geometry
        symbol = new SimpleFillSymbol(
        SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(
        SimpleLineSymbol.STYLE_SOLID,
        new Color([ 0, 255, 0 ]), 3),
        new Color([ 0, 125, 0,0.35 ]));
        break;
    }
    graphic.setSymbol(symbol);

当 de-selection 再次意味着用户 select 第二次单击图形时,我需要设置上一个符号。

我是否需要维护每个功能及其符号?或者他们有什么最好的方法吗?

@chiranjeevibmse 您可以通过在查询中发送 objectid 来使用 Featurelayer.selectFeatures 方法,而不是更改符号并维护之前的符号。

第一次点击时,使用您必须 select

的 objectid 进行查询
var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_ADD);

不要忘记设置 select 符号 ;)

第二次点击可以调用的图形

var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_SUBTRACT);

它将处理符号。