Add per-layer postrender example

This commit is contained in:
Tom Payne
2013-11-10 23:28:11 +01:00
parent a17560ade3
commit 3f74623e53
+26 -4
View File
@@ -1,7 +1,9 @@
goog.require('ol.Feature');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.format.GeoJSON'); goog.require('ol.format.GeoJSON');
goog.require('ol.geom.LineString');
goog.require('ol.layer.Tile'); goog.require('ol.layer.Tile');
goog.require('ol.layer.Vector'); goog.require('ol.layer.Vector');
goog.require('ol.source.OSM'); goog.require('ol.source.OSM');
@@ -107,15 +109,35 @@ new ol.format.GeoJSON().readObject({
] ]
}, vectorSource.addFeature, vectorSource); }, vectorSource.addFeature, vectorSource);
var vectorLayer = new ol.layer.Vector({
source: vectorSource,
styleFunction: styleFunction
});
var tmpFeature = new ol.Feature(
new ol.geom.LineString([[-5e6, -5e6], [5e6, -5e6]]));
var tmpStyle = {
fill: null,
image: null,
stroke: {
color: 'magenta',
width: 5
}
};
vectorLayer.on('postrender', function(event) {
var render = event.getRender();
render.drawFeature(tmpFeature, tmpStyle);
var context = event.getContext();
if (!goog.isNull(context)) {
context.clearRect(0, 0, 10, 10);
}
});
var map = new ol.Map({ var map = new ol.Map({
layers: [ layers: [
new ol.layer.Tile({ new ol.layer.Tile({
source: new ol.source.OSM() source: new ol.source.OSM()
}), }),
new ol.layer.Vector({ vectorLayer
source: vectorSource,
styleFunction: styleFunction
})
], ],
renderer: ol.RendererHint.CANVAS, renderer: ol.RendererHint.CANVAS,
target: 'map', target: 'map',