public long getNumTilesWide(int zoomLevel) { return gridSet.getGridLevels()[zoomLevel].getNumTilesWide(); }
public long[][] expandToMetaFactors(final long[][] coverages, final int[] metaFactors) { long[][] ret = ServletUtils.arrayDeepCopy(coverages); for (long[] cov : ret) { final int z = (int) cov[4]; final Grid grid = this.gridSet.getGrid(z); final long numTilesWide = grid.getNumTilesWide(); final long numTilesHigh = grid.getNumTilesHigh(); cov[0] = cov[0] - (cov[0] % metaFactors[0]); cov[1] = cov[1] - (cov[1] % metaFactors[1]); cov[2] = cov[2] - (cov[2] % metaFactors[0]) + (metaFactors[0] - 1); if (cov[2] > numTilesWide) { cov[2] = numTilesWide; } cov[3] = cov[3] - (cov[3] % metaFactors[1]) + (metaFactors[1] - 1); if (cov[3] > numTilesHigh) { cov[3] = numTilesHigh; } } return ret; }
public BoundingBox getBounds() { int i; long tilesWide, tilesHigh; for (i = (getGridLevels().length - 1); i > 0; i--) { tilesWide = getGridLevels()[i].getNumTilesWide(); tilesHigh = getGridLevels()[i].getNumTilesHigh(); if (tilesWide == 1 && tilesHigh == 0) { break; } } tilesWide = getGridLevels()[i].getNumTilesWide(); tilesHigh = getGridLevels()[i].getNumTilesHigh(); long[] ret = {0, 0, tilesWide - 1, tilesHigh - 1, i}; return boundsFromRectangle(ret); }
long maxColX = level.getNumTilesWide() - 1; long maxColY = level.getNumTilesHigh() - 1; coverage = new long[] {0, 0, maxColX, maxColY, z};
private void tileMatrix( XMLBuilder xml, Grid grid, double[] tlCoordinates, int tileWidth, int tileHeight, boolean scaleWarning) throws IOException { xml.indentElement("TileMatrix"); if (scaleWarning) { xml.simpleElement( "ows:Abstract", "The grid was not well-defined, the scale therefore assumes 1m per map unit.", true); } xml.simpleElement("ows:Identifier", grid.getName(), true); xml.simpleElement("ScaleDenominator", Double.toString(grid.getScaleDenominator()), true); xml.indentElement("TopLeftCorner") .text(Double.toString(tlCoordinates[0])) .text(" ") .text(Double.toString(tlCoordinates[1])) .endElement(); xml.simpleElement("TileWidth", Integer.toString(tileWidth), true); xml.simpleElement("TileHeight", Integer.toString(tileHeight), true); xml.simpleElement("MatrixWidth", Long.toString(grid.getNumTilesWide()), true); xml.simpleElement("MatrixHeight", Long.toString(grid.getNumTilesHigh()), true); xml.endElement("TileMatrix"); }
public void testBoundingBoxEPSG3785() throws Exception { BoundingBox extent = new BoundingBox(-20037508.34, -20037508.34, 20037508.34, 20037508.34); GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG3857(), extent, false, 6, null, 0.00028, 256, 256, false); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals((20037508.34 * 2) / 256, grid0.getResolution()); assertEquals(1L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); Grid grid3 = gridSet.getGridLevels()[3]; assertEquals((long) Math.pow(2, 3), grid3.getNumTilesWide()); assertEquals((long) Math.pow(2, 3), grid3.getNumTilesHigh()); }
public void testLevels2() throws Exception { BoundingBox extent = new BoundingBox(0, 0, 1000, 1000); int levels = 16; int tileW = 300, tileH = 100; Double metersPerUnit = 1D; double pixelSize = GridSetFactory.DEFAULT_PIXEL_SIZE_METER; GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getSRS(3005), extent, false, levels, metersPerUnit, pixelSize, tileW, tileH, false); assertEquals(extent, gridSet.getOriginalExtent()); Grid[] gridLevels = gridSet.getGridLevels(); assertEquals(16, gridLevels.length); assertEquals(1, gridLevels[0].getNumTilesWide()); assertEquals(3, gridLevels[0].getNumTilesHigh()); for (int i = 1; i < gridLevels.length; i++) { assertEquals(2 * gridLevels[i - 1].getNumTilesWide(), gridLevels[i].getNumTilesWide()); assertEquals(2 * gridLevels[i - 1].getNumTilesHigh(), gridLevels[i].getNumTilesHigh()); } }
public void testResolutionsArrayEPSG3785() throws Exception { BoundingBox extent = new BoundingBox(-20037508.34, -20037508.34, 20037508.34, 20037508.34); double[] resolutions = { (20037508.34 * 2) / 256, (20037508.34 * 2) / 512, (20037508.34 * 2) / 1024, (20037508.34 * 2) / 2048 }; GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG3857(), extent, false, resolutions, null, null, 0.00028, null, 256, 256, false); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals((20037508.34 * 2) / 256, grid0.getResolution()); assertEquals(1L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); Grid grid3 = gridSet.getGridLevels()[3]; assertEquals((long) Math.pow(2, 3), grid3.getNumTilesWide()); assertEquals((long) Math.pow(2, 3), grid3.getNumTilesHigh()); }
public void testBoundingBoxEPSG4326() throws Exception { BoundingBox extent = new BoundingBox(-180, -90, 180, 90); GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG4326(), extent, false, 4, null, 0.00028, 256, 256, false); assertEquals("test", gridSet.getName()); assertEquals(-180.0, gridSet.tileOrigin()[0]); assertEquals(-90.0, gridSet.tileOrigin()[1]); assertEquals(4, gridSet.getGridLevels().length); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals(180.0 / 256, grid0.getResolution()); assertEquals(2L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); Grid grid3 = gridSet.getGridLevels()[3]; assertEquals(180.0 / 2048, grid3.getResolution()); assertEquals((long) Math.pow(2, 4), grid3.getNumTilesWide()); assertEquals((long) Math.pow(2, 3), grid3.getNumTilesHigh()); }
public void testResolutionsArrayEPSG4326() throws Exception { BoundingBox extent = new BoundingBox(-180, -90, 180, 90); double[] resolutions = {180.0 / 256, 180.0 / 512, 180.0 / 1024, 180.0 / 2048}; GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG4326(), extent, false, resolutions, null, null, 0.00028, null, 256, 256, false); assertEquals("test", gridSet.getName()); assertEquals(-180.0, gridSet.tileOrigin()[0]); assertEquals(-90.0, gridSet.tileOrigin()[1]); assertEquals(resolutions.length, gridSet.getGridLevels().length); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals(180.0 / 256, grid0.getResolution()); assertEquals(2L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); Grid grid3 = gridSet.getGridLevels()[3]; assertEquals(180.0 / 2048, grid3.getResolution()); assertEquals((long) Math.pow(2, 4), grid3.getNumTilesWide()); assertEquals((long) Math.pow(2, 3), grid3.getNumTilesHigh()); }
public void testResolutionsArrayTricky1() throws Exception { // This should be expanded in the X direction BoundingBox extent = new BoundingBox(-173, -90, 180, 96); double[] resolutions = {180.0 / 200, 180.0 / 400, 180.0 / 800}; GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG4326(), extent, false, resolutions, null, null, 0.00028, null, 200, 200, false); assertEquals(-173.0, gridSet.tileOrigin()[0]); assertEquals(-90.0, gridSet.tileOrigin()[1]); assertEquals(resolutions.length, gridSet.getGridLevels().length); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals(180.0 / 200, grid0.getResolution()); assertEquals(2L, grid0.getNumTilesWide()); assertEquals(2L, grid0.getNumTilesHigh()); Grid grid3 = gridSet.getGridLevels()[2]; assertEquals(180.0 / 800, grid3.getResolution()); assertEquals(8L, grid3.getNumTilesWide()); assertEquals(5L, grid3.getNumTilesHigh()); }
public void testBoundingBoxTricky2() throws Exception { BoundingBox extent = new BoundingBox(-180, -90, 180, 82); SRS srs = SRS.getEPSG4326(); GridSet gridSet = GridSetFactory.createGridSet( "test", srs, extent, false, 4, null, 0.00028, 256, 256, false); assertEquals("test", gridSet.getName()); assertEquals(-180.0, gridSet.tileOrigin()[0]); assertEquals(-90.0, gridSet.tileOrigin()[1]); assertEquals(4, gridSet.getGridLevels().length); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals(180.0 / 256, grid0.getResolution()); assertEquals(2L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); }
public void testBoundingBoxTricky1() throws Exception { BoundingBox extent = new BoundingBox(-180, -90, 172, 90); GridSet gridSet = GridSetFactory.createGridSet( "test", SRS.getEPSG4326(), extent, false, 4, null, 0.00028, 256, 256, false); assertEquals("test", gridSet.getName()); assertEquals(-180.0, gridSet.tileOrigin()[0]); assertEquals(-90.0, gridSet.tileOrigin()[1]); assertEquals(4, gridSet.getGridLevels().length); Grid grid0 = gridSet.getGridLevels()[0]; assertEquals(180.0 / 256, grid0.getResolution()); assertEquals(2L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); }
long tilesHigh = 10; assertEquals(tilesWide, grid0.getNumTilesWide()); assertEquals(tilesHigh, grid0.getNumTilesHigh()); assertEquals(500D / tileHeight / tilesHigh, grid0.getResolution());
assertEquals(4L, grid0.getNumTilesWide()); assertEquals(1L, grid0.getNumTilesHigh()); assertEquals(50D / 20D, grid0.getResolution());