Allow multiple renderGeometryFunctions on ol.layer.Vector
This commit is contained in:
@@ -117,18 +117,38 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel =
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @return {function(ol.geom.Geometry): boolean|undefined} Render geometry
|
||||
* function.
|
||||
* @return {function(ol.geom.Geometry): boolean} Render geometry function.
|
||||
*/
|
||||
ol.renderer.canvas.VectorLayer.prototype.getRenderGeometryFunction_ =
|
||||
function() {
|
||||
var vectorLayer = this.getLayer();
|
||||
goog.asserts.assertInstanceof(vectorLayer, ol.layer.Vector);
|
||||
var renderGeometryFunction = vectorLayer.getRenderGeometryFunction();
|
||||
if (!goog.isDef(renderGeometryFunction)) {
|
||||
renderGeometryFunction = goog.functions.TRUE;
|
||||
var renderGeometryFunctions = vectorLayer.getRenderGeometryFunctions();
|
||||
if (!goog.isDef(renderGeometryFunctions)) {
|
||||
return goog.functions.TRUE;
|
||||
}
|
||||
var renderGeometryFunctionsArray = renderGeometryFunctions.getArray();
|
||||
switch (renderGeometryFunctionsArray.length) {
|
||||
case 0:
|
||||
return goog.functions.TRUE;
|
||||
case 1:
|
||||
return renderGeometryFunctionsArray[0];
|
||||
default:
|
||||
return (
|
||||
/**
|
||||
* @param {ol.geom.Geometry} geometry Geometry.
|
||||
* @return {boolean} Render geometry.
|
||||
*/
|
||||
function(geometry) {
|
||||
var i, ii;
|
||||
for (i = 0, ii = renderGeometryFunctionsArray.length; i < ii; ++i) {
|
||||
if (!renderGeometryFunctionsArray[i](geometry)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
return renderGeometryFunction;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user