'displayOutsideMaxExtent' option on the layer is set to true. Add tests, docs, and code. git-svn-id: http://svn.openlayers.org/trunk/openlayers@1531 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
108 lines
5.7 KiB
HTML
108 lines
5.7 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../lib/OpenLayers.js"></script>
|
|
<script type="text/javascript"><!--
|
|
var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
|
|
var tile;
|
|
|
|
function test_01_Tile_Image_constructor (t) {
|
|
t.plan( 6 );
|
|
|
|
var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
|
|
"http://labs.metacarta.com/wms/vmap0?", {layers: 'basic'});
|
|
|
|
var position = new OpenLayers.Pixel(20,30);
|
|
var bounds = new OpenLayers.Bounds(1,2,3,4);
|
|
var url = "http://www.openlayers.org/dev/tests/tileimage";
|
|
var size = new OpenLayers.Size(5,6);
|
|
tile = new OpenLayers.Tile.Image(layer, position, bounds, url, size);
|
|
|
|
t.ok( tile instanceof OpenLayers.Tile.Image, "new OpenLayers.Tile returns Tile object" );
|
|
t.ok( tile.layer == layer, "tile.layer is set correctly");
|
|
t.ok( tile.position.equals(position), "tile.position is set correctly");
|
|
t.ok( tile.bounds.equals(bounds), "tile.bounds is set correctly");
|
|
t.eq( tile.url, url, "tile.url is set correctly");
|
|
t.ok( tile.size.equals(size), "tile.size is set correctly");
|
|
}
|
|
function test_02_Tile_Image_draw (t) {
|
|
t.plan( 5 );
|
|
|
|
var layer = {maxExtent:new OpenLayers.Bounds(-180,-90,180,90)}; //bogus layer
|
|
layer.div = document.createElement("div");
|
|
var position = new OpenLayers.Pixel(20,30);
|
|
var bounds = new OpenLayers.Bounds(1,2,3,4);
|
|
var url = "http://www.openlayers.org/dev/tests/tileimage";
|
|
var size = new OpenLayers.Size(5,6);
|
|
tile = new OpenLayers.Tile.Image(layer, position, bounds, url, size);
|
|
|
|
tile.draw();
|
|
|
|
var img = tile.imgDiv;
|
|
|
|
if (!isMozilla)
|
|
t.ok( true, "skipping element test outside of Mozilla");
|
|
else
|
|
t.ok( tile.imgDiv instanceof HTMLElement, "tile.draw creates an image");
|
|
if (!isMozilla)
|
|
t.ok( true, "skipping element test outside of Mozilla");
|
|
else
|
|
t.ok( img instanceof HTMLImageElement, "tile.draw creates an image");
|
|
t.eq( img.src, "http://www.openlayers.org/dev/tests/tileimage", "tile.draw creates an image");
|
|
t.eq( tile.imgDiv.style.width, "5px", "Image width is correct" );
|
|
t.eq( tile.imgDiv.style.height, "6px", "Image height is correct" );
|
|
}
|
|
function test_03_Tile_Image_OutsideMaxExtent(t) {
|
|
t.plan( 11 );
|
|
var position = new OpenLayers.Pixel(20,30);
|
|
var bounds = new OpenLayers.Bounds(1,2,3,4);
|
|
var url = "http://www.openlayers.org/dev/tests/tileimage";
|
|
var size = new OpenLayers.Size(5,6);
|
|
var map = new OpenLayers.Map('map');
|
|
var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
|
|
"http://labs.metacarta.com/wms/vmap0?", {layers: 'basic'});
|
|
map.addLayer(layer);
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-185,-90,-180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "", "Images against side of maxextent don't load");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-181,-91,180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Images over edges of maxextent do load");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-181,-90,180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Images over edges of maxextent do load");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-180,-90,180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering all of extent loads");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-80,-45,80,45), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering small part of extent loads");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-185,-95,185,95), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering more than all of extent loads");
|
|
|
|
layer.displayOutsideMaxExtent=1;
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-185,-90,-180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Images against side of maxextent do load with displayOutsideMaxExtent");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-181,-90,180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Images over edges of maxextent do load with displayOutsideMaxExtent set");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-180,-90,180,90), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering all of extent loads with display outside max extent");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-80,-45,80,45), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering small part of extent loads with display outside max extent");
|
|
tile = new OpenLayers.Tile.Image(layer, position, new OpenLayers.Bounds(-185,-95,185,95), url, size);
|
|
tile.draw()
|
|
t.eq(tile.imgDiv.src, "http://www.openlayers.org/dev/tests/tileimage", "Image covering more than all of extent loads");
|
|
}
|
|
// -->
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="map"></div>
|
|
</body>
|
|
</html>
|
|
|