Do not draw non-loaded icons

This commit is contained in:
Éric Lemoine
2013-11-27 10:03:23 +01:00
parent 82e03ea508
commit 8f361e35dd

View File

@@ -177,16 +177,20 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature =
function(feature, resolution, styleFunction, replayGroup) { function(feature, resolution, styleFunction, replayGroup) {
var loading = false; var loading = false;
var styles = styleFunction(feature, resolution); 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) { for (i = 0, ii = styles.length; i < ii; ++i) {
style = styles[i]; style = styles[i];
imageStyle = style.image; imageStyle = style.image;
if (!goog.isNull(imageStyle) && if (!goog.isNull(imageStyle)) {
imageStyle.imageState == ol.style.ImageState.IDLE) { if (imageStyle.imageState == ol.style.ImageState.IDLE) {
goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE,
this.handleImageStyleChange_, false, this); this.handleImageStyleChange_, false, this);
imageStyle.load(); imageStyle.load();
loading = true; } 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 { } else {
ol.renderer.vector.renderFeature(replayGroup, feature, style); ol.renderer.vector.renderFeature(replayGroup, feature, style);
} }