[OpenLayers-Users] save Filter

Jimmy Aumard jimmy.aumard at gmail.com
Fri Dec 18 04:55:58 EST 2009


It's work I make this:

function createSLD(layer){
                var rules=[];
        for(var i=0;i<layer.styleMap.styles.default.rules.length;i++){
            rules[i]=layer.styleMap.styles.default.rules[i];
        }
             var defaultStyle = new OpenLayers.Style("default", {
                    rules: rules,
            name:"default",
            isDefault:true
                });
        rules=[];
        for(var i=0;i<layer.styleMap.styles.select.rules.length;i++){
            rules[i]=layer.styleMap.styles.select.rules[i];
        }
        var selectStyle = new OpenLayers.Style("select", {
                    rules: rules,
            name:"select",
                });

                var sld = new OpenLayers.Format.SLD().write({
                    namedLayers: [{
                        name: layer.name,
                        userStyles: [defaultStyle,selectStyle]
                    }]
                });
                return sld;
            }

Just a little problem : I use externalGraphics for Point and size is by
default to 6? How can I specify the size of externalGraphics?

Thanks for help.

Jim

The StyleMap is no 1:1 representation of an SLD document. So you would
e.g. have to do the following:

var rule = new OpenLayers.Rule({
    filter: yourFilter
});
rule.symbolizer[yourGeometryType(point|line|polygon)] = yourSymbolizer;
var style = new OpenLayers.Style("", {rules: [rule]});
var sld = new OpenLayers.Format.SLD().write({
    namedLayers: [{
        name: yourLayer.name,
        userStyles: [style]
    }]
});


-- 
Aumard Jimmy
Développeur - http://www.kinaxia.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20091218/ab60a5fa/attachment.html


More information about the Users mailing list