Ticket #1432: 1432-r6497-A0.patch
| File 1432-r6497-A0.patch, 3.0 kB (added by ahocevar, 10 months ago) |
|---|
-
lib/OpenLayers/Style.js
old new 115 115 * {Object} symbolizer hash 116 116 */ 117 117 createSymbolizer: function(feature) { 118 var style = OpenLayers.Util.extend({}, this.defaultStyle); 118 var style = this.createLiterals( 119 OpenLayers.Util.extend({}, this.defaultStyle), feature); 119 120 120 121 var rules = this.rules; 121 122 … … 173 174 174 175 var symbolizer = rule.symbolizer[symbolizerPrefix] || rule.symbolizer; 175 176 176 var context = this.context || feature.attributes || feature.data;177 178 177 // merge the style with the current style 179 178 return this.createLiterals( 180 OpenLayers.Util.extend(style, symbolizer), context);179 OpenLayers.Util.extend(style, symbolizer), feature); 181 180 }, 182 181 183 182 /** … … 188 187 * Parameters: 189 188 * style - {Object} style to create literals for. Will be modified 190 189 * inline. 191 * context - {Object} context to take property values from. Defaults to 192 * feature.attributes (or feature.data, if attributes are not 193 * available) 190 * feature - {Object} 194 191 * 195 192 * Returns: 196 193 * {Object} the modified style … … 195 192 * Returns: 196 193 * {Object} the modified style 197 194 */ 198 createLiterals: function(style, context) { 195 createLiterals: function(style, feature) { 196 var context = this.context || feature.attributes || feature.data; 197 199 198 for (var i in this.propertyStyles) { 200 199 style[i] = OpenLayers.Style.createLiteral(style[i], context); 201 200 } -
tests/test_Style.html
old new 41 41 symbolizer: {"Point": {fillColor: "red"}}, 42 42 minScaleDenominator: 1000000, 43 43 maxScaleDenominator: 2500000}); 44 style.addRules([rule1, rule2, rule3]);45 44 46 45 var feature = new OpenLayers.Feature.Vector( 47 46 new OpenLayers.Geometry.Point(3,5), … … 58 57 59 58 map.setCenter(new OpenLayers.LonLat(3,5), 10); 60 59 60 var createdStyle = style.createSymbolizer(feature); 61 t.eq(createdStyle.externalGraphic, "barbar.png", "Calculated property style for default symbolizer correctly."); 62 63 style.addRules([rule1, rule2, rule3]); 64 createdStyle = style.createSymbolizer(feature); 65 61 66 // at this scale, the feature should be green 62 var createdStyle = style.createSymbolizer(feature);63 t.eq(createdStyle.externalGraphic, "barbar.png", "Calculated property style correctly.");64 67 t.eq(createdStyle.display, "", "Feature is visible at scale "+map.getScale()); 65 68 t.eq(createdStyle.fillColor, "green", "Point symbolizer from rule applied correctly.");
