Hi Jeff, that's the styleMap I use to get the effect. Still in IE the labels with the font-size = 0px will drawn in very small letters?! Labels are a function of the zoomlevel (context) and the features are a function of the attribute popClass (UniqueValueRules). var styleMapCapitols; function setStyleMapCapitols() { var context = { getFontSize : function(ft){ var diffZ = map.getZoom() - 4; var popclass = parseInt(ft.attributes.popclass); if(popclass > 10 && map.getZoom() > 1) return(map.getZoom() + 7 + "px"); else if(diffZ > 0 && popclass>9) return (10 + 1*diffZ +"px") else if(diffZ > 0) return (8 + 1*diffZ +"px") else return("0px"); }, getName : function (ft){ return ft.attributes.name; } }; var template = { strokeColor: "#0000FF", strokeOpacity: 1, strokeWidth: 3, fillColor: "#00AAFF", fillOpacity: 1, pointRadius: 5, pointerEvents: "visiblePainted", label : "${getName}", labelOffsetX: "10", labelOffsetY: "-10", fontColor: "red", fontSize: "${getFontSize}", fontFamily: "Arial", fontWeight: "bold", labelAlign: "lt" }; styleMapCapitols = new OpenLayers.StyleMap(new OpenLayers.Style(template, {context:context}) ); var tata = {fillColor: '#FFAADD', pointRadius: 5, label : "${getName}",labelOffsetX: "10",labelOffsetY: "20",fontColor: "yellow",fontSize: "${getFontSize}",fontFamily: "Arial",fontWeight: "bold",labelAlign: "lt"} var popArrO = [0.5 , 0.5 , 0.5 , 0.5 , 0.5 , 0.5 , 0.5 , 0.5 , 0.75 , 0.75 , 0.75]; var popArrW = [1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 ]; var popArrR = [2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 6 , 7 , 10]; var popArrC = ['#FFFF00', '#00FF00', '#AA00FF', '#0000FF', '#FF8800', '#FF0000', '#FFAAAA', '#AAFFAA', '#AAAAFF', '#FF00FF', '#FF00AA']; var lookup = {}; //popclass beginnt mit 1! for(var i=0;i<11;i++) lookup[i+1] = new OpenLayers.Util.applyDefaults({pointRadius: popArrR[i], fillColor: popArrC[i], fillOpacity: popArrO[i], strokeWidth: popArrW[i], strokeColor: popArrC[i]}, tata); styleMapCapitols.addUniqueValueRules("default", "popclass", lookup); } setStyleMapCapitols();
an example: http://gis.ibbeck.de/OLClient/OLClient.asp?KARTE=k10000 Arnd _____ Von: users-boun...@openlayers.org [mailto:users-boun...@openlayers.org] Im Auftrag von Jeff Dege Gesendet: Montag, 12. April 2010 22:19 An: users@openlayers.org Betreff: [OpenLayers-Users] Vector labels at different zoom levels I'm adding some attributes to the GML data I'm using to draw a vector layer, and have set the label member of the style object to display those attributes. It works fine, except that it looks lousy when I zoom out. The labels are still drawn the same, even though the features may be nearly invisible. How do I turn off the rendering of labels, when the scale exceeds some threshold? (Note - I still want to draw the features, I simply don't want the labels.) I've tried adding a listener to map.movestart, that changes the value of layer.styleMap.styles['default'.defaultStyle.label, but that only affects future renderings of the map, it has no effect on the current zoom.
_______________________________________________ Users mailing list Users@openlayers.org http://openlayers.org/mailman/listinfo/users