UniqueValueRenderer - Transparency issue with SimpleMarkerSymbol

3829
2
Jump to solution
05-22-2015 01:17 PM
ChrisSmith7
Frequent Contributor

Hello,

I am having an issue with transparency not being recognized:

var renderer = new UniqueValueRenderer(defaultSymbol, "flag");

renderer.addValue("0", new SimpleMarkerSymbol().setColor(new Color([255, 0, 0, 0.75])).setSize("6").setOutline((new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 0.75]), 2))));
renderer.addValue("1", new SimpleMarkerSymbol().setColor(new Color([0, 71, 171, 0.75])).setSize("6").setOutline((new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 71, 171, 0.75]), 2))));

featureLayer.setRenderer(renderer);

This results in something like this:

Which does not exhibit any sort of transparency. Previously, I symbolized directly in the layer definition:

                    "drawingInfo": {
                        "renderer": {
                            "type": "simple",
                            "symbol": {
                                "color": [0, 0, 255, 115],
                                "size": 4.20,
                                "angle": -30,
                                "xoffset": 0,
                                "yoffset": 0,
                                "type": "esriSMS",
                                "style": "esriSMSCircle"
                            }
                        }
                    },

Interestingly, the alpha value here seems to be using a different opacity method... not 0.0 to 1.0 - rather, 115 produces this result:

I am using v3.12 and have cleared browser cache/restarted multiple times using IE and Chrome. Any ideas would be appreciated!

Thanks!

0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus

Chris,

  I like to do everything in the constructor. This works fine for me:

      var renderer = new UniqueValueRenderer(defaultSymbol, "flag");
      renderer.addValue("0", new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 6, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 0.75]), 1), new Color([255, 0, 0, 0.5])));
      renderer.addValue("1", new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 6, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 71, 171, 0.75]), 1), new Color([0, 71, 171, 0.5])));

View solution in original post

2 Replies
RobertScheitlin__GISP
MVP Emeritus

Chris,

  I like to do everything in the constructor. This works fine for me:

      var renderer = new UniqueValueRenderer(defaultSymbol, "flag");
      renderer.addValue("0", new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 6, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([255, 0, 0, 0.75]), 1), new Color([255, 0, 0, 0.5])));
      renderer.addValue("1", new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 6, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new Color([0, 71, 171, 0.75]), 1), new Color([0, 71, 171, 0.5])));
ChrisSmith7
Frequent Contributor

Thanks, Robert - this works perfectly! This also fixed an issue with an oversized identity selection box around the points after moving to the renderer, so double thanks!

0 Kudos