openlayers源码阅读笔记(三)—— 图层ol.Layer
1. layer.render()
/**
* In charge to manage the rendering of the layer. One layer type is
* bounded with one layer renderer.
* @param {?import("../PluggableMap.js").FrameState} frameState Frame state.
* @param {HTMLElement} target Target which the renderer may (but need not) use
* for rendering its content.
* @return {HTMLElement} The rendered element.
*/
render(frameState, target) {
const layerRenderer = this.getRenderer();
if (layerRenderer.prepareFrame(frameState)) {
return layerRenderer.renderFrame(frameState, target);
}
}
图层的render函数其实是调用的其渲染器的renderFrame函数。layer.getRenderer()返回一个图层渲染器,不同的图层有不同的renderer,比如ol.layer.Tile的renderer为ol.renderer.canvas.TileLayer。