don't waste coordinate space by using a smaller renderer extent and updating it on moveend. r=bartvde (closes #3359)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@12163 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
t.plan(5);
|
||||
t.plan(7);
|
||||
|
||||
OpenLayers.Renderer.SVG2.prototype._setExtent =
|
||||
OpenLayers.Renderer.SVG2.prototype.setExtent;
|
||||
@@ -76,14 +76,16 @@
|
||||
|
||||
t.eq(g_SetExtent, true, "Elements.setExtent() called");
|
||||
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "width"), "4", "width is correct");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "height"), "4", "height is correct");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "1 -4 2 2", "rendererRoot viewBox is correct");
|
||||
t.eq(r.extent.toString(), extent.scale(3).toString(), "renderer's extent is correct");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "width"), "12", "width is correct");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "height"), "12", "height is correct");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "-1 -6 6 6", "rendererRoot viewBox is correct");
|
||||
|
||||
// test extent changes
|
||||
extent = new OpenLayers.Bounds(2,3,5,6);
|
||||
r.updateDimensions();
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "2 -6 3 3", "rendererRoot viewBox is correct after a new setExtent");
|
||||
t.eq(r.extent.toString(), extent.scale(3).toString(), "renderer's extent changed after updateDimensions");
|
||||
t.eq(r.rendererRoot.getAttributeNS(null, "viewBox"), "-1 -9 9 9", "rendererRoot viewBox is correct after a new setExtent");
|
||||
|
||||
OpenLayers.Renderer.SVG2.prototype.setExtent =
|
||||
OpenLayers.Renderer.SVG2.prototype._setExtent;
|
||||
|
||||
50
tests/manual/svg2-coordinaterange.html
Normal file
50
tests/manual/svg2-coordinaterange.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
|
||||
<link rel="stylesheet" href="../../theme/default/style.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
#map {
|
||||
width: 512px;
|
||||
height: 512px;
|
||||
border: 1px solid gray;
|
||||
}
|
||||
</style>
|
||||
<title>SVG2 coordinate range check</title>
|
||||
<script type="text/javascript" src="../../lib/OpenLayers.js"></script>
|
||||
<script>
|
||||
|
||||
var WGS84 = new OpenLayers.Projection("EPSG:4326");
|
||||
var Mercator = new OpenLayers.Projection("EPSG:900913");
|
||||
var wkt = new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 });
|
||||
|
||||
function init() {
|
||||
var externalGraphic, baseURL, baseLayer, layerOptions, hidemessenger;
|
||||
|
||||
var map = new OpenLayers.Map('map', {
|
||||
controls: [
|
||||
new OpenLayers.Control.Navigation(),
|
||||
new OpenLayers.Control.PanZoom(),
|
||||
new OpenLayers.Control.Attribution()
|
||||
],
|
||||
theme: null
|
||||
});
|
||||
|
||||
baseLayer = new OpenLayers.Layer.OSM("OSM");
|
||||
|
||||
var viewLayer = new OpenLayers.Layer.Vector("View Layer", {renderers: ["SVG2"]});
|
||||
map.addLayers([baseLayer, viewLayer]);
|
||||
|
||||
viewLayer.addFeatures([wkt.read("LINESTRING(2.4356174739332 48.816618174539, 2.4313688548536 48.826083884311)")]);
|
||||
var lonLat = new OpenLayers.LonLat( 2.43686, 48.81742) .transform( WGS84, Mercator);
|
||||
map.setCenter (lonLat, 16);
|
||||
}
|
||||
</script>
|
||||
|
||||
<body onload="init()">
|
||||
<div id="map"></div>
|
||||
<p>The map should show a line on top of the OSM layer. If it does not, then
|
||||
either the CSS or the SVG coordinate range is exceeded.</p>
|
||||
<p>This test only works on browsers that support SVG.</p>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user