代码之家  ›  专栏  ›  技术社区  ›  chiranjeevigk

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

  •  0
  • chiranjeevigk  · 技术社区  · 8 年前

    我有一个功能层,并添加了点击事件来选择图形。在选择时,我更改了符号,以显示图形被选中。

    如下代码

    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 回复  |  直到 8 年前
        1
  •  2
  •   Manjunath M    8 年前

    @chiranjeevibmse代替您更改符号并保持之前的符号,您可以使用Featurelayer。通过在查询中发送objectid来选择Features方法。

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

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

    这将照顾符号。