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:
@@ -166,7 +166,7 @@ OpenLayers.Renderer.Canvas = OpenLayers.Class(OpenLayers.Renderer, {
|
|||||||
worldBounds = this.map.getMaxExtent();
|
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;
|
rendered = (style.display !== "none") && !!bounds && intersects;
|
||||||
if (rendered) {
|
if (rendered) {
|
||||||
|
|||||||
+25
-16
@@ -3,6 +3,24 @@
|
|||||||
<script src="../OLLoader.js"></script>
|
<script src="../OLLoader.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var supported = OpenLayers.Renderer.Canvas.prototype.supported();
|
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) {
|
function test_Renderer_Canvas_constructor(t) {
|
||||||
if (!supported) { t.plan(0); return; }
|
if (!supported) { t.plan(0); return; }
|
||||||
t.plan(2);
|
t.plan(2);
|
||||||
@@ -18,16 +36,17 @@
|
|||||||
function test_Renderer_Canvas_setextent(t) {
|
function test_Renderer_Canvas_setextent(t) {
|
||||||
if (!supported) { t.plan(0); return; }
|
if (!supported) { t.plan(0); return; }
|
||||||
t.plan(2);
|
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);
|
var extent = new OpenLayers.Bounds(1,2,3,4);
|
||||||
r.resolution = 1;
|
r.resolution = 1;
|
||||||
r.setExtent(extent, true);
|
r.setExtent(extent, true);
|
||||||
t.ok(r.extent.equals(extent), "extent is correctly set");
|
t.ok(r.extent.equals(extent), "extent is correctly set");
|
||||||
t.eq(r.resolution, null, "resolution nullified");
|
t.eq(r.resolution, null, "resolution nullified");
|
||||||
r.destroy();
|
|
||||||
|
tearDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_Renderer_Canvas_setsize(t) {
|
function test_Renderer_Canvas_setsize(t) {
|
||||||
@@ -124,18 +143,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
t.plan(10);
|
t.plan(10);
|
||||||
var layer = new OpenLayers.Layer.Vector(null, {
|
|
||||||
isBaseLayer: true,
|
|
||||||
renderers: ["Canvas"]
|
|
||||||
});
|
|
||||||
|
|
||||||
var map = new OpenLayers.Map({
|
setUp();
|
||||||
div: "map",
|
|
||||||
controls: [],
|
|
||||||
layers: [layer],
|
|
||||||
center: new OpenLayers.LonLat(0, 0),
|
|
||||||
zoom: 0
|
|
||||||
});
|
|
||||||
|
|
||||||
var renderer = layer.renderer;
|
var renderer = layer.renderer;
|
||||||
var count = 0;
|
var count = 0;
|
||||||
@@ -192,7 +201,7 @@
|
|||||||
t.eq(count, 1, "d) redraw is called when drawing a feature without bounds");
|
t.eq(count, 1, "d) redraw is called when drawing a feature without bounds");
|
||||||
renderer.clear();
|
renderer.clear();
|
||||||
|
|
||||||
map.destroy();
|
tearDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user