Dojo 如何在ESRI arcgis中恢复图形符号

Dojo 如何在ESRI arcgis中恢复图形符号,dojo,esri,arcgis-js-api,Dojo,Esri,Arcgis Js Api,我有一个要素图层,并添加了单击事件来选择图形。在选择时,我已更改符号,以显示已选择图形 如下代码所示 var symbol; switch (graphic.geometry.type) { case "point": //symbol for point geometry symbol = new SimpleMarkerSymbol( SimpleMarkerSymbol.STYLE_CIRCLE, 12, new Si

我有一个要素图层,并添加了单击事件来选择图形。在选择时,我已更改符号,以显示已选择图形

如下代码所示

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);
当取消选择意味着再次用户通过第二次单击选择图形时,我需要设置上一个符号


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

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

第一次单击时,使用您必须选择的objectid进行查询

var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_ADD);
不要忘记设置选择符号;)

第二次单击您可以调用的图形

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

这将处理符号。

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

第一次单击时,使用您必须选择的objectid进行查询

var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_ADD);
不要忘记设置选择符号;)

第二次单击您可以调用的图形

var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_SUBTRACT);
它将处理符号