OpenLayers.Layer.Markers - propagate layer's opacity to the markers. Thanks
ahughes for the bug report and crschmidt for review and advices. (Closes #1114) git-svn-id: http://svn.openlayers.org/trunk/openlayers@5509 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -29,6 +29,12 @@ OpenLayers.Layer = OpenLayers.Class({
|
|||||||
*/
|
*/
|
||||||
div: null,
|
div: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Property: opacity
|
||||||
|
* {Float} The layer's opacity. Float number between 0.0 and 1.0.
|
||||||
|
*/
|
||||||
|
opacity: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constant: EVENT_TYPES
|
* Constant: EVENT_TYPES
|
||||||
* {Array(String)} Supported application event types
|
* {Array(String)} Supported application event types
|
||||||
|
|||||||
@@ -57,7 +57,22 @@ OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
OpenLayers.Layer.prototype.destroy.apply(this, arguments);
|
OpenLayers.Layer.prototype.destroy.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIMethod: setOpacity
|
||||||
|
* Sets the opacity for all the markers.
|
||||||
|
*
|
||||||
|
* Parameter:
|
||||||
|
* opacity - {Float}
|
||||||
|
*/
|
||||||
|
setOpacity: function(opacity) {
|
||||||
|
if (opacity != this.opacity) {
|
||||||
|
this.opacity = opacity;
|
||||||
|
for (var i = 0; i < this.markers.length; i++) {
|
||||||
|
this.markers[i].setOpacity(this.opacity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: moveTo
|
* Method: moveTo
|
||||||
*
|
*
|
||||||
@@ -85,6 +100,11 @@ OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
*/
|
*/
|
||||||
addMarker: function(marker) {
|
addMarker: function(marker) {
|
||||||
this.markers.push(marker);
|
this.markers.push(marker);
|
||||||
|
|
||||||
|
if (this.opacity != null) {
|
||||||
|
marker.setOpacity(this.opacity);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.map && this.map.getExtent()) {
|
if (this.map && this.map.getExtent()) {
|
||||||
marker.map = this.map;
|
marker.map = this.map;
|
||||||
this.drawMarker(marker);
|
this.drawMarker(marker);
|
||||||
|
|||||||
@@ -77,6 +77,32 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_Layer_Markers_setOpacity(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
layer = new OpenLayers.Layer.Markers('Test Layer');
|
||||||
|
|
||||||
|
var opacity = 0.1234;
|
||||||
|
|
||||||
|
for (var i = 0; i < 12; i++) {
|
||||||
|
layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
|
||||||
|
}
|
||||||
|
|
||||||
|
layer.setOpacity(opacity);
|
||||||
|
|
||||||
|
for (var i = 0; i < 4; i++) {
|
||||||
|
layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
|
||||||
|
}
|
||||||
|
|
||||||
|
var itWorks = false;
|
||||||
|
for (var i = 0; i < layer.markers.length; i++) {
|
||||||
|
itWorks = parseFloat(layer.markers[i].icon.imageDiv.style.opacity) == opacity;
|
||||||
|
if (!itWorks) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t.ok(itWorks, "setOpacity change markers opacity");
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
Reference in New Issue
Block a user