Ticket #1043: zoomer.TRUNK.2.patch
| File zoomer.TRUNK.2.patch, 23.1 kB (added by euzuro, 1 year ago) |
|---|
-
tests/test_Layer.html
old new 158 158 159 159 function test_06_Layer_getZoomForResolution(t) { 160 160 161 t.plan( 6);161 t.plan(8); 162 162 163 163 var layer = new OpenLayers.Layer('Test Layer'); 164 164 … … 166 166 layer.resolutions = [128, 64, 32, 16, 8, 4, 2]; 167 167 168 168 t.eq(layer.getZoomForResolution(200), 0, "zoom all the way out"); 169 t.eq(layer.getZoomForResolution(65), 1, "index closest to 65");170 t.eq(layer.getZoomForResolution(63), 1, "index closest to 63");171 169 t.eq(layer.getZoomForResolution(25), 2, "zoom in middle"); 172 170 t.eq(layer.getZoomForResolution(3), 5, "zoom allmost all the way in"); 173 171 t.eq(layer.getZoomForResolution(1), 6, "zoom all the way in"); 174 172 173 t.eq(layer.getZoomForResolution(65), 0, "smallest containing res"); 174 t.eq(layer.getZoomForResolution(63), 1, "smallest containing res"); 175 176 t.eq(layer.getZoomForResolution(65, true), 1, "closest res"); 177 t.eq(layer.getZoomForResolution(63, true), 1, "closest res"); 178 175 179 } 176 180 177 181 function test_07_Layer_redraw(t) { -
tests/Control/test_OverviewMap.html
old new 43 43 var overviewZoom = control.ovmap.getZoom(); 44 44 t.eq(overviewCenter.lon, -71, "Overviewmap center lon correct"); 45 45 t.eq(overviewCenter.lat, 42, "Overviewmap center lat correct"); 46 t.eq(overviewZoom, 9, "Overviewmap zoomcorrect");46 t.eq(overviewZoom, 8, "Overviewmap zoomcorrect"); 47 47 48 48 control.mapDivClick({'xy':new OpenLayers.Pixel(5,5)}); 49 49 50 // There are box model issues that keep browsers from giving us51 // identical results here. Test the normalized difference against52 // a tolerance instead of testing equality.53 function normalizedDiff(a, b) {54 return Math.abs((a - b) / (a + b));55 }56 var tolerance = 1e-4;57 58 50 var cent = map.getCenter(); 59 t.ok(normalizedDiff(cent.lon, -71.00390625) < tolerance, 60 "Clicking on the Overview Map has the correct effect on map lon"); 61 t.ok(normalizedDiff(cent.lat, 42.00390625) < tolerance, 62 "Clicking on the Overview Map has the correct effect on map lat"); 51 t.eq(cent.lon, -71.3515625, "Clicking on the Overview Map has the correct effect on map lon"); 52 t.eq(cent.lat, 42.17578125, "Clicking on the Overview Map has the correct effect on map lat"); 63 53 64 54 control.rectMouseDown({'xy':new OpenLayers.Pixel(5,5), 'which':1}); 65 55 control.rectMouseMove({'xy':new OpenLayers.Pixel(15,15), 'which':1}); 66 56 control.rectMouseUp({'xy':new OpenLayers.Pixel(15,15), 'which':1}); 67 57 68 58 var cent = map.getCenter(); 69 t.ok(normalizedDiff(cent.lon, -70.83984375) < tolerance, 70 "Dragging on the Overview Map has the correct effect on map lon"); 71 t.ok(normalizedDiff(cent.lat, 41.84765625) < tolerance, 72 "Dragging on the Overview Map has the correct effect on map lat"); 59 t.eq(cent.lon, -71.2734375, "Dragging on the Overview Map has the correct effect on map lon"); 60 t.eq(cent.lat, 42.09765625, "Dragging on the Overview Map has the correct effect on map lat"); 73 61 74 62 map.setCenter(new OpenLayers.LonLat(0,0), 0); 75 63 var overviewCenter = control.ovmap.getCenter(); -
tests/Layer/test_WrapDateLine.html
old new 131 131 var m = new OpenLayers.Map('map'); 132 132 m.addLayer(layer); 133 133 m.zoomToMaxExtent(); 134 t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C 0%2C90%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world.");135 t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C 270%2C90%2C360&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat");136 t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=- 90%2C270%2C0%2C360&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all.");134 t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world."); 135 t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat"); 136 t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all."); 137 137 138 138 } 139 139 function test_Layer_WrapDateLine_KaMap (t) { … … 146 146 var m = new OpenLayers.Map('map'); 147 147 m.addLayer(layer); 148 148 m.zoomToMaxExtent(); 149 t.eq(layer.grid[0][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=0&s= 110735960.625", "grid[0][0] kamap is okay");150 t.eq(layer.grid[0][3].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=-256&s= 110735960.625", "grid[0][3] kamap is okay");151 t.eq(layer.grid[3][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-512&l=0&s= 110735960.625", "grid[3][0] is okay");149 t.eq(layer.grid[0][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=0&s=221471921.25", "grid[0][0] kamap is okay"); 150 t.eq(layer.grid[0][3].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=-256&s=221471921.25", "grid[0][3] kamap is okay"); 151 t.eq(layer.grid[3][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-512&l=0&s=221471921.25", "grid[3][0] is okay"); 152 152 } 153 153 function test_Layer_WrapDateLine_WMS_Overlay (t) { 154 154 t.plan( 3 ); … … 163 163 var m = new OpenLayers.Map('map'); 164 164 m.addLayers([baselayer,layer]); 165 165 m.zoomToMaxExtent(); 166 t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C 270%2C90%2C360&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay");167 t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=- 90%2C270%2C0%2C360&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay");168 t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C 0%2C90%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay");166 t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay"); 167 t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay"); 168 t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay"); 169 169 } 170 170 171 171 </script> -
tests/Layer/test_TileCache.html
old new 78 78 79 79 bounds = new OpenLayers.Bounds(10,10,12,12); 80 80 zoom = layer.getZoomForExtent(bounds); 81 /**82 * ideal resolution: 2 map units / 500px = 0.00483 * layer.resolutions = [0.703125, 0.3515625, 0.17578125,84 * 0.087890625, 0.0439453125, 0.02197265625,85 * 0.010986328125, 0.0054931640625, 0.00274658203125,86 * 0.001373291015625, 0.0006866455078125, 0.00034332275390625,87 * 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125,88 * 0.000021457672119140625]89 *90 * So, we expect a zoom of 8 because it is the closest resolution.91 */92 t.eq( zoom, 8, "getZoomForExtent() returns correct value");93 81 82 t.eq( zoom, 7, "getZoomForExtent() returns correct value"); 83 94 84 bounds = new OpenLayers.Bounds(10,10,100,100); 95 85 zoom = layer.getZoomForExtent(bounds); 96 /**97 * ideal resolution: 90 map units / 500px = 0.1898 * So, we expect a zoom of 2 because it is the closest.99 */100 86 101 t.eq( zoom, 2, "getZoomForExtent() returns correct value");87 t.eq( zoom, 1, "getZoomForExtent() returns correct value"); 102 88 } 103 89 104 90 -
tests/Layer/test_Grid.html
old new 150 150 bounds = new OpenLayers.Bounds(10,10,12,12); 151 151 zoom = layer.getZoomForExtent(bounds); 152 152 153 /** 154 * ideal resolution: 2 map units / 500px = 0.004 155 * layer.resolutions = [1.40625, 0.703125, 0.3515625, 0.17578125, 156 * 0.087890625, 0.0439453125, 0.02197265625, 157 * 0.010986328125, 0.0054931640625, 0.00274658203125, 158 * 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 159 * 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125] 160 * 161 * So, we expect a zoom of 9 because it is the closest resolution. 162 */ 163 t.eq( zoom, 9, "getZoomForExtent() returns correct value"); 153 t.eq( zoom, 8, "getZoomForExtent() returns correct value"); 164 154 165 155 bounds = new OpenLayers.Bounds(10,10,100,100); 166 156 zoom = layer.getZoomForExtent(bounds); 167 157 168 /** 169 * ideal resolution: 90 map units / 500px = 0.18 170 * So, we expect a zoom of 3 because it is the closest. 171 */ 172 t.eq( zoom, 3, "getZoomForExtent() returns correct value"); 158 t.eq( zoom, 2, "getZoomForExtent() returns correct value"); 173 159 } 174 160 175 161 function test_07_Layer_Grid_moveTo(t) { … … 555 541 map.zoomToMaxExtent(); 556 542 map.zoomIn(); 557 543 var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200)); 558 t.eq(bounds.toBBOX(), "- 90,0,0,90", "get tile bounds returns correct bounds");544 t.eq(bounds.toBBOX(), "-180,-90,0,90", "get tile bounds returns correct bounds"); 559 545 map.pan(200,0); 560 546 var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200)); 561 t.eq(bounds.toBBOX(), "0, 0,90,90", "get tile bounds returns correct bounds after pan");547 t.eq(bounds.toBBOX(), "0,-90,180,90", "get tile bounds returns correct bounds after pan"); 562 548 } 563 549 564 550 function test_Layer_Grid_moveTo_buffer_calculation (t) { -
tests/Layer/test_KaMap.html
old new 128 128 bounds = new OpenLayers.Bounds(10,10,12,12); 129 129 zoom = layer.getZoomForExtent(bounds); 130 130 131 /** 132 * ideal resolution: 2 map units / 500px = 0.004 133 * layer.resolutions = [1.40625, 0.703125, 0.3515625, 0.17578125, 134 * 0.087890625, 0.0439453125, 0.02197265625, 135 * 0.010986328125, 0.0054931640625, 0.00274658203125, 136 * 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 137 * 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125] 138 * 139 * So, we expect a zoom of 9 because it is the closest resolution. 140 */ 141 t.eq( zoom, 9, "getZoomForExtent() returns correct value"); 131 t.eq( zoom, 8, "getZoomForExtent() returns correct value"); 142 132 143 133 bounds = new OpenLayers.Bounds(10,10,100,100); 144 134 zoom = layer.getZoomForExtent(bounds); 145 135 146 /** 147 * ideal resolution: 90 map units / 500px = 0.18 148 * So, we expect a zoom of 3 because it is the closest. 149 */ 150 t.eq( zoom, 3, "getZoomForExtent() returns correct value"); 136 t.eq( zoom, 2, "getZoomForExtent() returns correct value"); 151 137 } 152 138 153 139 function test_06_Layer_kaMap_mergeNewParams (t) { … … 250 236 map.zoomToMaxExtent(); 251 237 map.zoomIn(); 252 238 var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200)); 253 t.eq(bounds.toBBOX(), "- 90,0,0,90", "get tile bounds returns correct bounds");239 t.eq(bounds.toBBOX(), "-180,0,0,180", "get tile bounds returns correct bounds"); 254 240 map.pan(200,0); 255 241 var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200)); 256 t.eq(bounds.toBBOX(), "0,0, 90,90", "get tile bounds returns correct bounds after pan");242 t.eq(bounds.toBBOX(), "0,0,180,180", "get tile bounds returns correct bounds after pan"); 257 243 } 258 244 259 245 function test_99_Layer_KaMap_destroy (t) { -
tests/Layer/test_TMS.html
old new 77 77 78 78 bounds = new OpenLayers.Bounds(10,10,12,12); 79 79 zoom = layer.getZoomForExtent(bounds); 80 /**81 * ideal resolution: 2 map units / 500px = 0.00482 * layer.resolutions = [1.40625, 0.703125, 0.3515625, 0.17578125,83 * 0.087890625, 0.0439453125, 0.02197265625,84 * 0.010986328125, 0.0054931640625, 0.00274658203125,85 * 0.001373291015625, 0.0006866455078125, 0.00034332275390625,86 * 0.000171661376953125, 0.0000858306884765625, 0.00004291534423828125]87 *88 * So, we expect a zoom of 9 because it is the closest resolution.89 */90 91 t.eq( zoom, 9, "getZoomForExtent() returns correct value");92 80 81 t.eq( zoom, 8, "getZoomForExtent() returns correct value"); 82 93 83 bounds = new OpenLayers.Bounds(10,10,100,100); 94 84 zoom = layer.getZoomForExtent(bounds); 95 /** 96 * ideal resolution: 90 map units / 500px = 0.18 97 * So, we expect a zoom of 3 because it is the closest. 98 */ 99 t.eq( zoom, 3, "getZoomForExtent() returns correct value"); 85 86 t.eq( zoom, 2, "getZoomForExtent() returns correct value"); 100 87 } 101 88 102 89 -
lib/OpenLayers/Layer.js
old new 730 730 * 731 731 * Parameters: 732 732 * bounds - {<OpenLayers.Bounds>} 733 * closest - {Boolean} Find the zoom level that corresponds to the absolute 734 * closest for the given extent, which may result in a zoom whose 735 * that does not exactly contain the entire extent. 736 * Default is false. 733 737 * 734 738 * Returns: 735 739 * {Integer} The index of the zoomLevel (entry in the resolutions array) 736 * that still contains the passed-in extent. We do this by calculating 737 * the ideal resolution for the given exteng (based on the map size) 738 * and then find the closest resolution to this ideal resolution. 740 * for the passed-in extent. We do this by calculating the ideal 741 * resolution for the given extent (based on the map size) and then 742 * calling getZoomForResolution(), passing along the 'closest' 743 * parameter. 739 744 */ 740 getZoomForExtent: function(extent ) {745 getZoomForExtent: function(extent, closest) { 741 746 var viewSize = this.map.getSize(); 742 747 var idealResolution = Math.max( extent.getWidth() / viewSize.w, 743 748 extent.getHeight() / viewSize.h ); 744 749 745 return this.getZoomForResolution(idealResolution );750 return this.getZoomForResolution(idealResolution, closest); 746 751 }, 747 752 748 753 /** … … 759 764 760 765 /** 761 766 * APIMethod: getZoomForResolution 762 * Get the index for the closest resolution in the layers resolutions array.763 767 * 764 768 * Parameters: 765 * resolution - {Float} Map units per pixel. 769 * resolution - {Float} 770 * closest - {Boolean} Find the zoom level that corresponds to the absolute 771 * closest resolution, which may result in a zoom whose corresponding 772 * resolution is actually smaller than we would have desired (if this 773 * is being called from a getZoomForExtent() call, then this means that 774 * the returned zoom index might not actually contain the entire 775 * extent specified... but it'll be close). 776 * Default is false. 766 777 * 767 778 * Returns: 768 779 * {Integer} The index of the zoomLevel (entry in the resolutions array) 769 * that is the closest to the passed-in resolution. 780 * that corresponds to the best fit resolution given the passed in 781 * value and the 'closest' specification. 770 782 */ 771 getZoomForResolution: function(resolution ) {772 var zoom,diff;783 getZoomForResolution: function(resolution, closest) { 784 var diff; 773 785 var minDiff = Number.POSITIVE_INFINITY; 774 for(var i=0; i < this.resolutions.length; i++) { 775 diff = Math.abs(this.resolutions[i] - resolution); 776 if(diff < minDiff) { 777 zoom = i; 786 for(var i=0; i < this.resolutions.length; i++) { 787 if (closest) { 788 diff = Math.abs(this.resolutions[i] - resolution); 789 if (diff > minDiff) { 790 break; 791 } 778 792 minDiff = diff; 779 } else if(diff > minDiff) { 780 break; 793 } else { 794 if (this.resolutions[i] < resolution) { 795 break; 796 } 781 797 } 782 798 } 783 return zoom;799 return Math.max(0, i-1); 784 800 }, 785 801 786 802 /** -
lib/OpenLayers/Map.js
old new 711 711 // simply set center but force zoom change 712 712 this.setCenter( 713 713 center, 714 this.getZoomForResolution(this.resolution ),714 this.getZoomForResolution(this.resolution, true), 715 715 false, true 716 716 ); 717 717 } else { 718 718 // zoom to oldExtent *and* force zoom change 719 719 this.setCenter(oldExtent.getCenterLonLat(), 720 this.getZoomForExtent(oldExtent ),720 this.getZoomForExtent(oldExtent, true), 721 721 false, true); 722 722 } 723 723 } … … 1385 1385 * 1386 1386 * Parameter: 1387 1387 * resolution - {Float} 1388 * closest - {Boolean} Find the zoom level that corresponds to the absolute 1389 * closest resolution, which may result in a zoom whose corresponding 1390 * resolution is actually smaller than we would have desired (if this 1391 * is being called from a getZoomForExtent() call, then this means that 1392 * the returned zoom index might not actually contain the entire 1393 * extent specified... but it'll be close). 1394 * Default is false. 1388 1395 * 1389 1396 * Returns: 1390 1397 * {Integer} A suitable zoom level for the specified resolution. 1391 1398 * If no baselayer is set, returns null. 1392 1399 */ 1393 getZoomForResolution: function(resolution ) {1400 getZoomForResolution: function(resolution, closest) { 1394 1401 var zoom = null; 1395 1402 if (this.baseLayer != null) { 1396 zoom = this.baseLayer.getZoomForResolution(resolution );1403 zoom = this.baseLayer.getZoomForResolution(resolution, closest); 1397 1404 } 1398 1405 return zoom; 1399 1406 },
