Sure,
last time I wanted to post code here it was too long so I don't try to send our style map and shorten it this time. Our projection is 900913. The "mapObject" is our map-controller so you should replace it by your way to find the map.

var defaultStyle = new OpenLayers.Style({
            'pointRadius': '1',
            'fillColor': '#008700',
            'fillOpacity': '0.6',
            'stroke': 'True',
            'strokeColor': '#21007E',
            'strokeOpacity': '0.9',
            'strokeWidth': '1',
            'strokeDashstyle': 'solid',
            'label': '${labelText}',
            'fontSize': '${getLabelFontSize}',
            'labelXOffset': '3',
            'labelYOffset': '3',
            'fontFamily': 'Arial',
            'labelAlign': 'lb',
            'display': ''
        });

        defaultREDEStyle = new OpenLayers.Style({
            'pointRadius': '1',
            'fillColor': '#008700',
            'fillOpacity': '0.6',
            'stroke': 'True',
            'strokeColor': '#21007E',
            'strokeOpacity': '0.9',
            'strokeWidth': '1',
            'strokeDashstyle': 'solid',
            'label': '',
            'fontSize': '6px',
            'labelXOffset': '3',
            'labelYOffset': '3',
            'fontFamily': 'Arial',
            'labelAlign': 'lb',
            'display': ''
        });
var defaultStyleMap = new OpenLayers.StyleMap({ 'default': defaultStyle, 'redeDefault':defaultREDEStyle });

defaultStyleMap.styles["default"].context =
{    getLabelFontSize: function (feature) {
var fontSize = (feature.attributes.style != null && feature.attributes.style.fontSize != null && feature.attributes.style.fontSize) || (feature.layer && feature.layer.styleMap.styles["redeDefault"].defaultStyle.fontSize);

return Math.min(25, Math.max(5, parseInt(fontSize) * 6000 / feature.layer.map.getResolution())) + "px";
    },
    labelText:function(feature){
if(feature.attributes.style != null && feature.attributes.style.label != null) { return feature.attributes.style.label.length > 0 ? feature.attributes.style.label : '';
        } else if(feature.layer) {
return feature.layer.styleMap.styles["redeDefault"].defaultStyle.label;
        } else {
            return '';
        }}

}

var layer = new OpenLayers.Layer.Vector("test", {styleMap:defaultStyleMap,renderers : ["SVG"]}); layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(893208.5127734,6940239.5448242),{style:{label:"test1",fontSize:"20px"
}}));
layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1143208.5127734,6910239.5448242),{style:{label:"test1"}})); layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1403208.5127734,6910239.5448242),{style:{label:"test1"}})); layer.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1108208.5127734,6605239.5448242),{style:{label:"test1"}}));
mapObject.map.addLayer(layer);
var layer2 = new OpenLayers.Layer.Vector("test2", {styleMap:defaultStyleMap,renderers : ["SVG2"]}); layer2.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(893208.5127734,6940239.5448242),{style:{label:"test1",fontSize:"20px"
}}));
layer2.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1143208.5127734,6910239.5448242),{style:{label:"test1"}})); layer2.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1403208.5127734,6910239.5448242),{style:{label:"test1"}})); layer2.addFeatures(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1108208.5127734,6605239.5448242),{style:{label:"test1"}}));
mapObject.map.addLayer(layer2);

Regards,
Slawomir

Am 13.04.2011 09:25, schrieb Andreas Hocevar:
Hey Slawomir,

thanks for the feedback. Can you please provide a working example so we can 
reproduce and fix the issue?

Thanks,
Andreas.

On Apr 13, 2011, at 08:14 , Slawomir Messner wrote:

Hi,
would like to use it too but we use a style map with context so that labels and 
graphics change size on zoom but the functions are not called with SVG2 when 
zoomed only with SVG so the things stay at initial size dependent on the zoom 
level at loading. I hope this is not the reason for performance boost. Is it 
normal that SVG2 doesn't call the functions of context/symbolizers?
Best regards,
Slawomir

Am 12.04.2011 17:34, schrieb mortac8:
This is amazing.  I can draw 10,000 features in Opera and zoom in/out in
<500ms on the provided timer.

--
View this message in context: 
http://osgeo-org.1803224.n2.nabble.com/SVG2-and-2-11-tp6251101p6265597.html
Sent from the OpenLayers Dev mailing list archive at Nabble.com.
_______________________________________________
Dev mailing list
d...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-dev

_______________________________________________
Dev mailing list
d...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-dev



_______________________________________________
Dev mailing list
d...@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-dev

Reply via email to