From 8f361e35ddbc8d5793e7724a00a9481257a660c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Wed, 27 Nov 2013 10:03:23 +0100 Subject: [PATCH] Do not draw non-loaded icons --- .../canvas/canvasvectorlayerrenderer.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 794ae1507d..596b20e247 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -177,16 +177,20 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = function(feature, resolution, styleFunction, replayGroup) { var loading = false; var styles = styleFunction(feature, resolution); - var i, ii, style, imageStyle; + var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; imageStyle = style.image; - if (!goog.isNull(imageStyle) && - imageStyle.imageState == ol.style.ImageState.IDLE) { - goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, - this.handleImageStyleChange_, false, this); - imageStyle.load(); - loading = true; + if (!goog.isNull(imageStyle)) { + if (imageStyle.imageState == ol.style.ImageState.IDLE) { + goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, + this.handleImageStyleChange_, false, this); + imageStyle.load(); + } else if (imageStyle.imageState == ol.style.ImageState.LOADED) { + ol.renderer.vector.renderFeature(replayGroup, feature, style); + } + goog.asserts.assert(imageStyle.imageState != ol.style.ImageState.IDLE); + loading = imageStyle.imageState == ol.style.ImageState.LOADING; } else { ol.renderer.vector.renderFeature(replayGroup, feature, style); }