Create a renderer and draw when possible.

This commit is contained in:
Tim Schaub
2012-06-22 20:06:33 +02:00
parent c72f803038
commit af73489bd5
2 changed files with 25 additions and 13 deletions
-1
View File
@@ -1,4 +1,3 @@
.ol-viewport { width:100%; height:100%; position:relative; left:0; top:0; }
.ol-renderer-webgl-canvas { width:100%; height:100%; } .ol-renderer-webgl-canvas { width:100%; height:100%; }
+24 -11
View File
@@ -6,10 +6,10 @@ goog.require('ol.Projection');
goog.require('ol.event'); goog.require('ol.event');
goog.require('ol.event.Events'); goog.require('ol.event.Events');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.renderer.MapRenderer');
goog.require('goog.dom'); goog.require('goog.dom');
/** /**
* @export * @export
* @constructor * @constructor
@@ -359,6 +359,10 @@ ol.Map.prototype.setContainer = function(container) {
//TODO Controls could be set earlier, but we need to deal with content that //TODO Controls could be set earlier, but we need to deal with content that
// controls place on overlays. // controls place on overlays.
this.setControls(ol.Map.DEFAULT_CONTROLS); this.setControls(ol.Map.DEFAULT_CONTROLS);
// conditionally render
if (!goog.isNull(this.layers_) && goog.isDef(this.zoom_) && !goog.isNull(this.center_)) {
this.renderer_.draw(this.layers_, this.center_, this.getResolutionForZoom(this.zoom_));
}
}; };
/** /**
@@ -370,7 +374,10 @@ ol.Map.prototype.getViewport = function() {
ol.Map.prototype.setViewport = function() { ol.Map.prototype.setViewport = function() {
if (!this.viewport_) { if (!this.viewport_) {
this.viewport_ = goog.dom.createDom('div', 'ol-viewport'); this.viewport_ = goog.dom.createDom('div', {
'class': 'ol-viewport',
'style': 'height:100%;width:100%;position:relative;top:0;left:0;overflow:hidden'
});
this.mapOverlay_ = goog.dom.createDom('div', 'ol-overlay-map'); this.mapOverlay_ = goog.dom.createDom('div', 'ol-overlay-map');
this.staticOverlay_ = goog.dom.createDom('div', 'ol-overlay-static'); this.staticOverlay_ = goog.dom.createDom('div', 'ol-overlay-static');
goog.dom.append(this.viewport_, this.mapOverlay_, this.staticOverlay_); goog.dom.append(this.viewport_, this.mapOverlay_, this.staticOverlay_);
@@ -380,14 +387,9 @@ ol.Map.prototype.setViewport = function() {
}; };
ol.Map.prototype.createRenderer = function() { ol.Map.prototype.createRenderer = function() {
/*var registeredRenderers = ol.renderer.RENDERER_MAP, var Renderer = ol.renderer.MapRenderer.pickRendererType(
candidate; ol.Map.preferredRenderers);
for (var r in registeredRenderers) { this.renderer_ = new Renderer(this.viewport_);
if (registeredRenderers[r].isSupported()) {
break;
}
}
this.renderer_ = new registeredRenderers[r](this.viewport_);*/
}; };
/** /**
@@ -439,3 +441,14 @@ ol.Map.prototype.destroy = function() {
delete this[key]; delete this[key];
} }
}; };
/**
* List of preferred renderer types. Map renderers have a getType method
* that returns a string describing their type. This list determines the
* preferences for picking a layer renderer.
*
* @type {Array.<string>}
*/
ol.Map.preferredRenderers = ["webgl", "canvas"];