replaced Renderer.Elements' minimumSymbolizer and Renderer.Canvas' symbolizer defaults with a new Renderer.defaultSymbolizer. r=elemoine (closes #2584)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10316 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -303,6 +303,64 @@ OpenLayers.Renderer = OpenLayers.Class({
|
|||||||
getRenderLayerId: function() {
|
getRenderLayerId: function() {
|
||||||
return this.container.id;
|
return this.container.id;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: applyDefaultSymbolizer
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* symbolizer - {Object}
|
||||||
|
*
|
||||||
|
* Returns:
|
||||||
|
* {Object}
|
||||||
|
*/
|
||||||
|
applyDefaultSymbolizer: function(symbolizer) {
|
||||||
|
var result = OpenLayers.Util.extend({},
|
||||||
|
OpenLayers.Renderer.defaultSymbolizer);
|
||||||
|
if(symbolizer.stroke !== true &&
|
||||||
|
symbolizer.strokeWidth === undefined &&
|
||||||
|
symbolizer.strokeColor === undefined &&
|
||||||
|
symbolizer.strokeOpacity === undefined) {
|
||||||
|
delete result.strokeWidth;
|
||||||
|
delete result.strokeColor;
|
||||||
|
}
|
||||||
|
if(symbolizer.fill !== true &&
|
||||||
|
symbolizer.fillColor === undefined &&
|
||||||
|
symbolizer.fillOpacity === undefined) {
|
||||||
|
delete result.fillColor;
|
||||||
|
}
|
||||||
|
OpenLayers.Util.extend(result, symbolizer);
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
CLASS_NAME: "OpenLayers.Renderer"
|
CLASS_NAME: "OpenLayers.Renderer"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constant: OpenLayers.Renderer.defaultSymbolizer
|
||||||
|
* {Object} Properties from this symbolizer will be applied to symbolizers
|
||||||
|
* with missing properties. This can also be used to set a global
|
||||||
|
* symbolizer default in OpenLayers. To be SLD 1.x compliant, add the
|
||||||
|
* following code before rendering any vector features:
|
||||||
|
* (code)
|
||||||
|
* OpenLayers.Renderer.defaultSymbolizer = {
|
||||||
|
* fillColor: "#808080",
|
||||||
|
* fillOpacity: 1,
|
||||||
|
* strokeColor: "#000000",
|
||||||
|
* strokeOpacity: 1,
|
||||||
|
* strokeWidth: 1,
|
||||||
|
* strokeDashstyle: "solid",
|
||||||
|
* pointRadius: 3,
|
||||||
|
* graphicName: "square"
|
||||||
|
* };
|
||||||
|
* (end)
|
||||||
|
*/
|
||||||
|
OpenLayers.Renderer.defaultSymbolizer = {
|
||||||
|
fillColor: "#000000",
|
||||||
|
strokeColor: "#000000",
|
||||||
|
strokeWidth: 2,
|
||||||
|
fillOpacity: 1,
|
||||||
|
strokeOpacity: 1,
|
||||||
|
strokeDashstyle: "solid",
|
||||||
|
pointRadius: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -118,16 +118,9 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
* style - {<Object>}
|
* style - {<Object>}
|
||||||
*/
|
*/
|
||||||
drawFeature: function(feature, style) {
|
drawFeature: function(feature, style) {
|
||||||
if(style == null) {
|
style = style || feature.style;
|
||||||
style = feature.style;
|
style = this.applyDefaultSymbolizer(style);
|
||||||
}
|
|
||||||
style = OpenLayers.Util.extend({
|
|
||||||
'fillColor': '#000000',
|
|
||||||
'strokeColor': '#000000',
|
|
||||||
'strokeWidth': 2,
|
|
||||||
'fillOpacity': 1,
|
|
||||||
'strokeOpacity': 1
|
|
||||||
}, style);
|
|
||||||
this.features[feature.id] = [feature, style];
|
this.features[feature.id] = [feature, style];
|
||||||
if (feature.geometry) {
|
if (feature.geometry) {
|
||||||
this.geometryMap[feature.geometry.id] = feature.id;
|
this.geometryMap[feature.geometry.id] = feature.id;
|
||||||
|
|||||||
@@ -394,18 +394,6 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
*/
|
*/
|
||||||
LABEL_ID_SUFFIX: "_label",
|
LABEL_ID_SUFFIX: "_label",
|
||||||
|
|
||||||
/**
|
|
||||||
* Property: minimumSymbolizer
|
|
||||||
* {Object}
|
|
||||||
*/
|
|
||||||
minimumSymbolizer: {
|
|
||||||
strokeLinecap: "round",
|
|
||||||
strokeOpacity: 1,
|
|
||||||
strokeDashstyle: "solid",
|
|
||||||
fillOpacity: 1,
|
|
||||||
pointRadius: 0
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor: OpenLayers.Renderer.Elements
|
* Constructor: OpenLayers.Renderer.Elements
|
||||||
*
|
*
|
||||||
@@ -655,7 +643,7 @@ OpenLayers.Renderer.Elements = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
*/
|
*/
|
||||||
drawGeometryNode: function(node, geometry, style) {
|
drawGeometryNode: function(node, geometry, style) {
|
||||||
style = style || node._style;
|
style = style || node._style;
|
||||||
OpenLayers.Util.applyDefaults(style, this.minimumSymbolizer);
|
style = this.applyDefaultSymbolizer(style);
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
'isFilled': style.fill === undefined ?
|
'isFilled': style.fill === undefined ?
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
|||||||
node.setAttributeNS(null, "stroke", style.strokeColor);
|
node.setAttributeNS(null, "stroke", style.strokeColor);
|
||||||
node.setAttributeNS(null, "stroke-opacity", style.strokeOpacity);
|
node.setAttributeNS(null, "stroke-opacity", style.strokeOpacity);
|
||||||
node.setAttributeNS(null, "stroke-width", style.strokeWidth * widthFactor);
|
node.setAttributeNS(null, "stroke-width", style.strokeWidth * widthFactor);
|
||||||
node.setAttributeNS(null, "stroke-linecap", style.strokeLinecap);
|
node.setAttributeNS(null, "stroke-linecap", style.strokeLinecap || "round");
|
||||||
// Hard-coded linejoin for now, to make it look the same as in VML.
|
// Hard-coded linejoin for now, to make it look the same as in VML.
|
||||||
// There is no strokeLinejoin property yet for symbolizers.
|
// There is no strokeLinejoin property yet for symbolizers.
|
||||||
node.setAttributeNS(null, "stroke-linejoin", "round");
|
node.setAttributeNS(null, "stroke-linejoin", "round");
|
||||||
|
|||||||
@@ -328,7 +328,8 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
|||||||
node.appendChild(stroke);
|
node.appendChild(stroke);
|
||||||
}
|
}
|
||||||
stroke.opacity = style.strokeOpacity;
|
stroke.opacity = style.strokeOpacity;
|
||||||
stroke.endcap = !style.strokeLinecap || style.strokeLinecap == 'butt' ? 'flat' : style.strokeLinecap;
|
stroke.endcap = style.strokeLinecap == 'butt' ? 'flat' :
|
||||||
|
(style.strokeLinecap || 'round');
|
||||||
stroke.dashstyle = this.dashStyle(style);
|
stroke.dashstyle = this.dashStyle(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user