diff --git a/src/ol/interaction/selectinteraction.js b/src/ol/interaction/selectinteraction.js index 4290dc4fac..45fa13aef0 100644 --- a/src/ol/interaction/selectinteraction.js +++ b/src/ol/interaction/selectinteraction.js @@ -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); diff --git a/src/ol/style/fillsymbolizer.js b/src/ol/style/fillsymbolizer.js index b5e079117e..c0acfa6161 100644 --- a/src/ol/style/fillsymbolizer.js +++ b/src/ol/style/fillsymbolizer.js @@ -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 +}; diff --git a/src/ol/style/strokesymbolizer.js b/src/ol/style/strokesymbolizer.js index f1f0b389aa..339bae811b 100644 --- a/src/ol/style/strokesymbolizer.js +++ b/src/ol/style/strokesymbolizer.js @@ -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 +}; diff --git a/src/ol/style/style.js b/src/ol/style/style.js index e098cc75cf..0a11949201 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -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(),