Symbolizer defaults for the select renderIntent

This commit is contained in:
ahocevar
2013-08-30 13:47:43 +02:00
parent 83720975f8
commit 9dae49dc18
4 changed files with 41 additions and 9 deletions

View File

@@ -1,7 +1,6 @@
goog.provide('ol.interaction.Select');
goog.require('goog.array');
goog.require('goog.asserts');
goog.require('ol.Feature');
goog.require('ol.interaction.ConditionType');
goog.require('ol.interaction.Interaction');
@@ -114,11 +113,9 @@ ol.interaction.Select.prototype.select =
}
var selectionLayer = this.selectionLayers[mapId].layers[layerId];
if (!goog.isDef(selectionLayer)) {
goog.asserts.assertFunction(layer.getStyle,
'At least one of the layers has no "getStyle()" function.');
selectionLayer = new ol.layer.Vector({
source: new ol.source.Vector({parser: null}),
style: layer.getStyle()
style: goog.isFunction(layer.getStyle) ? layer.getStyle() : null
});
selectionLayer.setTemporary(true);
map.addLayer(selectionLayer);

View File

@@ -116,10 +116,20 @@ ol.style.Fill.prototype.setOpacity = function(opacity) {
/**
* @typedef {{fillColor: (string),
* fillOpacity: (number)}}
* @typedef {{color: (string),
* opacity: (number)}}
*/
ol.style.FillDefaults = {
color: '#ffffff',
opacity: 0.4
};
/**
* @typedef {{color: (string),
* opacity: (number)}}
*/
ol.style.FillDefaultsSelect = {
color: '#ffffff',
opacity: 0.7
};

View File

@@ -158,12 +158,24 @@ ol.style.Stroke.prototype.setWidth = function(width) {
/**
* @typedef {{strokeColor: (string),
* strokeOpacity: (number),
* strokeWidth: (number)}}
* @typedef {{color: (string),
* opacity: (number),
* width: (number)}}
*/
ol.style.StrokeDefaults = {
color: '#696969',
opacity: 0.75,
width: 1.5
};
/**
* @typedef {{color: (string),
* opacity: (number),
* width: (number)}}
*/
ol.style.StrokeDefaultsSelect = {
color: '#696969',
opacity: 0.9,
width: 2.0
};

View File

@@ -67,6 +67,19 @@ ol.style.Style.prototype.createLiterals = function(feature) {
* @type {ol.style.Style}
*/
ol.style.Style.defaults = new ol.style.Style({
rules: [
new ol.style.Rule({
filter: 'renderIntent("select")',
symbolizers: [
new ol.style.Shape({
fill: new ol.style.Fill(ol.style.FillDefaultsSelect),
stroke: new ol.style.Stroke(ol.style.StrokeDefaultsSelect)
}),
new ol.style.Fill(ol.style.FillDefaultsSelect),
new ol.style.Stroke(ol.style.StrokeDefaultsSelect)
]
})
],
symbolizers: [
new ol.style.Shape({
fill: new ol.style.Fill(),