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

时间:2016-03-16 09:40:01

标签: 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 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);

当取消选择意味着再次用户通过点击第二次选择图形我需要设置上一个符号。

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

1 个答案:

答案 0 :(得分:2)

@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);

将照顾符号。