Handle features without bounds.

Updates to tests to work with new wrap dateline code.  Canvas renderer needs to handle geometries without bounds as well.
This commit is contained in:
tschaub
2011-10-11 14:48:10 -06:00
parent c2bf717e5c
commit cb74ede41b
2 changed files with 26 additions and 17 deletions

View File

@@ -166,7 +166,7 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
worldBounds = this.map.getMaxExtent();
}
var intersects = bounds.intersectsBounds(this.extent, {worldBounds: worldBounds});
var intersects = bounds && bounds.intersectsBounds(this.extent, {worldBounds: worldBounds});
rendered = (style.display !== "none") && !!bounds && intersects;
if (rendered) {

View File

@@ -3,6 +3,24 @@
<script src="../OLLoader.js"></script>
<script type="text/javascript">
var supported = OpenLayers.Renderer.Canvas.prototype.supported();
var map, layer;
function setUp() {
map = new OpenLayers.Map("map");
layer = new OpenLayers.Layer.Vector(null, {
isBaseLayer: true,
renderers: ["Canvas"]
});
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(0, 0));
}
function tearDown() {
map.destroy();
map = null;
layer = null;
}
function test_Renderer_Canvas_constructor(t) {
if (!supported) { t.plan(0); return; }
t.plan(2);
@@ -18,16 +36,17 @@
function test_Renderer_Canvas_setextent(t) {
if (!supported) { t.plan(0); return; }
t.plan(2);
var el = document.body;
el.id = "foo";
var r = new OpenLayers.Renderer.Canvas(el.id);
setUp();
var r = layer.renderer;
var extent = new OpenLayers.Bounds(1,2,3,4);
r.resolution = 1;
r.setExtent(extent, true);
t.ok(r.extent.equals(extent), "extent is correctly set");
t.eq(r.resolution, null, "resolution nullified");
r.destroy();
tearDown();
}
function test_Renderer_Canvas_setsize(t) {
@@ -124,18 +143,8 @@
}
t.plan(10);
var layer = new OpenLayers.Layer.Vector(null, {
isBaseLayer: true,
renderers: ["Canvas"]
});
var map = new OpenLayers.Map({
div: "map",
controls: [],
layers: [layer],
center: new OpenLayers.LonLat(0, 0),
zoom: 0
});
setUp();
var renderer = layer.renderer;
var count = 0;
@@ -192,7 +201,7 @@
t.eq(count, 1, "d) redraw is called when drawing a feature without bounds");
renderer.clear();
map.destroy();
tearDown();
}