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