Hi Andy,
it seems like an awful amount of work the way you do it. I actually got it
to work using filters, and it works really well. Takes a little bit to get
a handle on working with filters,
but once you do, it’s very spiffy! Here is my code:

public static Style createDefaultAssetsExposureStyle(GeometryDescriptor
gd) {
                PropertyIsEqualTo filterIrrelevant = 
ff.equals(ff.property("EXPOSURE"),
ff.literal(-1));
                Rule ruleIrrelevant = createDefaultStyleRule(gd, Color.GRAY);
                ruleIrrelevant.setFilter(filterIrrelevant);
                PropertyIsEqualTo filterAffected = 
ff.equals(ff.property("EXPOSURE"),
ff.literal(1));
                Rule ruleAffected = createDefaultStyleRule(gd, Color.RED);
                ruleAffected.setFilter(filterAffected);
                PropertyIsEqualTo filterNotAffected = 
ff.equals(ff.property("EXPOSURE"),
ff.literal(0));
                Rule ruleNotAffected = createDefaultStyleRule(gd, Color.GREEN);
                ruleNotAffected.setFilter(filterNotAffected);
                
    FeatureTypeStyle fts = sf.createFeatureTypeStyle();
    fts.rules().add(ruleIrrelevant);
    fts.rules().add(ruleAffected);
    fts.rules().add(ruleNotAffected);
    Style style = sf.createStyle();
    style.featureTypeStyles().add(fts);
    return style;
        }

        public static Rule createDefaultStyleRule(GeometryDescriptor gd, Color
fillColor) {
                Symbolizer symbolizer = null;
                Fill fill = null;
                Class<?> geomType = gd.getType().getBinding();
                String geometryAttributeName = gd.getLocalName();
                Stroke stroke = sf.createStroke(ff.literal(Color.BLACK),
ff.literal(1.0f));

                if (LineString.class.isAssignableFrom(geomType) ||
MultiLineString.class.isAssignableFrom(geomType)) {
                        symbolizer = sf.createLineSymbolizer(stroke, 
geometryAttributeName);
                } else if (Polygon.class.isAssignableFrom(geomType) ||
MultiPolygon.class.isAssignableFrom(geomType)) {
                        fill = sf.createFill(ff.literal(fillColor), 
ff.literal(OPACITY));
                        symbolizer = sf.createPolygonSymbolizer(stroke, fill,
geometryAttributeName);
                } else {

                        fill = sf.createFill(ff.literal(fillColor), 
ff.literal(OPACITY));

                        Mark mark = sf.getCircleMark();
                        mark.setFill(fill);
//                      mark.setStroke(stroke);

                        Graphic graphic = sf.createDefaultGraphic();
                        graphic.graphicalSymbols().clear();
                        graphic.graphicalSymbols().add(mark);
                        graphic.setSize(ff.literal(POINT_SIZE));

                        symbolizer = sf.createPointSymbolizer(graphic, 
geometryAttributeName);
                }

                Rule rule = sf.createRule();
                rule.symbolizers().add(symbolizer);
                return rule;
        }


Gaby

On 1/05/15 17:38, "Andy Turner" <a.g.d.tur...@leeds.ac.uk> wrote:

>With this, I would be tempted to split this into three point shapefiles
>and try rendering them on top of each other in different orders applying
>different styles to see how the picture/map looked. I think I tried, but
>did not find a way to do it all in one go keeping all the data in the
>same shapefile.
>
>The points I add in the foreground of my map:
>
>    // Add foreground0
>    // ---------------
>    private static void addForeground0(
>            MapContent result,
>            AGDT_StyleParameters styleParameters,
>            ArrayList<AGDT_Shapefile> foregroundDW_Shapefile0) {
>        if (foregroundDW_Shapefile0 != null) {
>            Iterator<AGDT_Shapefile> ite;
>            ite = foregroundDW_Shapefile0.iterator();
>            int indexx = 0;
>            while (ite.hasNext()) {
>                AGDT_Shapefile sf = ite.next();
>                FeatureLayer foregroundFeatureLayer0;
>                foregroundFeatureLayer0 = sf.getFeatureLayer(
>                  
>styleParameters.getForegroundStyle0().get(indexx));
>                result.addLayer(foregroundFeatureLayer0);
>                indexx++;
>            }
>        }
>    }
>
>That code is from:
>
>https://github.com/agdturner/digital-welfare/blob/master/src/main/java/uk/
>ac/leeds/ccg/andyt/projects/digitalwelfare/mapping/DW_Geotools.java
>point
>
>My DW_ project code depends on the following where I have tried to move
>all my generic geotools type code too (as you may recall):
>https://github.com/agdturner/agdt-geotools
>
>Interested to learn if you figure out a way to do this keeping all the
>data in a single shapefile. There may be a way to do this with
>classifiers which I use to do graduated shading. But with this, you may
>be more restricted in the colours and styles of your points.
>
>Please let me know if this helps or if you want more details (though it
>might take me a week or so to respond from now). Thanks also for your
>reply to my earlier message. I will be taking a good look at your work
>and hopefully referring to it in due course.
>
>I will be getting back to coding in the next week or so having had a few
>week doing other things.
>
>Best wishes,
>
>Andy
>________________________________________
>From: Gabriella Turek [gabriella.tu...@niwa.co.nz]
>Sent: 01 May 2015 03:22
>To: geotools users
>Subject: [Geotools-gt2-users] Help with styling
>
>I have a point shape file with one attribute which can be one of -1,0,1.
>I’d like to set up a style with three colors. Can someone point me in the
>right direction?
>Thanx
>gaby
>
>--------------------------------------------------------------------------
>----
>One dashboard for servers and applications across Physical-Virtual-Cloud
>Widest out-of-the-box monitoring support with 50+ applications
>Performance metrics, stats and reports that give you Actionable Insights
>Deep dive visibility with transaction tracing using APM Insight.
>http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>_______________________________________________
>GeoTools-GT2-Users mailing list
>GeoTools-GT2-Users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to