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
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to