Changeset 8618 in josm for trunk/test/unit
- Timestamp:
- 2015-07-26T17:03:37+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java
r8599 r8618 15 15 import org.openstreetmap.josm.data.coor.LatLon; 16 16 import org.openstreetmap.josm.data.osm.BBox; 17 import org.openstreetmap.josm.data.projection.CustomProjection; 17 18 import org.openstreetmap.josm.data.projection.Projection; 18 19 import org.openstreetmap.josm.data.projection.Projections; … … 67 68 68 69 @Test 70 public void testEPSG4326_widebounds() { 71 Main.setProjection(new CustomProjection("+proj=lonlat +datum=WGS84 +axis=neu +bounds=-180,53,180,54")); 72 TemplatedWMSTileSource source = getSource(); 73 74 verifyLocation(source, new LatLon(53.5937132, 19.5652017)); 75 verifyLocation(source, new LatLon(53.501565692302854, 18.54455233898721)); 76 } 77 78 @Test 79 public void testEPSG4326_narrowbounds() { 80 Main.setProjection(new CustomProjection("+proj=lonlat +datum=WGS84 +axis=neu +bounds=18,-90,20,90")); 81 TemplatedWMSTileSource source = getSource(); 82 83 verifyLocation(source, new LatLon(53.5937132, 19.5652017)); 84 verifyLocation(source, new LatLon(53.501565692302854, 18.54455233898721)); 85 } 86 87 @Test 69 88 public void testEPSG2180() { 70 89 Main.setProjection(Projections.getProjectionByCode("EPSG:2180")); … … 77 96 verifyTileSquarness(source, 150, 20, 18); 78 97 verifyTileSquarness(source, 2270, 1323, 12); 98 } 99 100 @Test 101 public void testEPSG3006_withbounds() { 102 Main.setProjection( 103 new CustomProjection("+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 " 104 + "+units=m +no_defs +axis=neu +wmssrs=EPSG:3006 +bounds=10.5700,55.2000,24.1800,69.1000 ")); 105 TemplatedWMSTileSource source = getSource(); 106 107 verifyLocation(source, new LatLon(60, 18), 3); 108 verifyLocation(source, new LatLon(60, 18)); 109 110 } 111 112 @Test 113 public void testEPSG3006_withoutbounds() { 114 Main.setProjection( 115 new CustomProjection("+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 " 116 + "+units=m +no_defs +axis=neu +wmssrs=EPSG:3006")); 117 TemplatedWMSTileSource source = getSource(); 118 119 verifyTileSquarness(source, 0, 1, 4); 120 verifyLocation(source, new LatLon(60, 18.1), 3); 121 verifyLocation(source, new LatLon(60, 18.1)); 122 79 123 } 80 124 … … 83 127 LatLon result = getTileLatLon(source, x, y, z); 84 128 LatLon expected = new LatLon(verifier.tileYToLat(y, z - 1), verifier.tileXToLon(x, z - 1)); // 85 System.out.println(z + "/" + x + "/" + y + " - result: " + result.toDisplayString() + " osmMercator: " + expected.toDisplayString());86 129 assertTrue("result: " + result.toDisplayString() + " osmMercator: " + expected.toDisplayString(), result.equalsEpsilon(expected)); 87 130 LatLon tileCenter = new Bounds(result, getTileLatLon(source, x+1, y+1, z)).getCenter(); … … 92 135 93 136 private void verifyLocation(TemplatedWMSTileSource source, LatLon location) { 94 for (int z = 1; z < 22; z++) { 95 TileXY tileIndex = source.latLonToTileXY(location.toCoordinate(), z); 96 BBox bbox = new BBox( 97 getTileLatLon(source, tileIndex, z), 98 getTileLatLon(source, tileIndex.getXIndex() + 1, tileIndex.getYIndex() + 1, z) 99 ); 100 assertTrue(location.toDisplayString() + " not within " + bbox.toString() + 101 " for tile " + z + "/" + tileIndex.getXIndex() + "/" + tileIndex.getYIndex(), 102 bbox.bounds(location)); 137 for (int z = 22; z > 1; z--) { 138 verifyLocation(source, location, z); 103 139 } 140 } 141 142 private void verifyLocation(TemplatedWMSTileSource source, LatLon location, int z) { 143 assertTrue( 144 "Point outside world bounds", 145 Main.getProjection().getWorldBoundsLatLon().contains(location) 146 ); 147 148 TileXY tileIndex = source.latLonToTileXY(location.toCoordinate(), z); 149 150 assertTrue("X index: " + tileIndex.getXIndex() + " greater than tileXmax: " + source.getTileXMax(z) + " at zoom: " + z, 151 tileIndex.getXIndex() <= source.getTileXMax(z)); 152 153 assertTrue("Y index: " + tileIndex.getYIndex() + " greater than tileYmax: " + source.getTileYMax(z) + " at zoom: " + z, 154 tileIndex.getYIndex() <= source.getTileYMax(z)); 155 156 // test that location is within tile bounds 157 BBox bbox = new BBox( 158 getTileLatLon(source, tileIndex, z), 159 getTileLatLon(source, tileIndex.getXIndex() + 1, tileIndex.getYIndex() + 1, z) 160 ); 161 assertTrue(location.toDisplayString() + " not within " + bbox.toString() + 162 " for tile " + z + "/" + tileIndex.getXIndex() + "/" + tileIndex.getYIndex(), 163 bbox.bounds(location)); 164 verifyTileSquarness(source, tileIndex.getXIndex(), tileIndex.getYIndex(), z); 104 165 } 105 166 … … 119 180 * t3 | t4 120 181 */ 121 EastNorth t1 = proj.latlon2eastNorth(getTileLatLon(source, x, y, z));122 EastNorth t2 = proj.latlon2eastNorth(getTileLatLon(source, x + 1, y, z));123 EastNorth t3 = proj.latlon2eastNorth(getTileLatLon(source, x, y + 1, z));124 EastNorth t4 = proj.latlon2eastNorth(getTileLatLon(source, x + 1, y + 1, z));182 EastNorth t1 = source.getTileEastNorth(x, y, z); 183 EastNorth t2 = source.getTileEastNorth(x + 1, y, z); 184 EastNorth t3 = source.getTileEastNorth(x, y + 1, z); 185 EastNorth t4 = source.getTileEastNorth(x + 1, y + 1, z); 125 186 double y_size = Math.abs(t1.getY() - t4.getY()); 126 187 double x_size = Math.abs(t1.getX() - t4.getX()); 127 188 128 assertEquals(x_size, y_size, Math.max(x_size, y_size) * 1e-0 5);129 assertEquals(y_size, Math.abs(t1.getY() - t3.getY()), y_size * 1e-0 5);130 assertEquals(x_size, Math.abs(t1.getX() - t2.getX()), x_size * 1e-0 5);189 assertEquals(x_size, y_size, Math.max(x_size, y_size) * 1e-06); 190 assertEquals(y_size, Math.abs(t1.getY() - t3.getY()), y_size * 1e-06); 191 assertEquals(x_size, Math.abs(t1.getX() - t2.getX()), x_size * 1e-06); 131 192 132 193 t1 = source.getTileEastNorth(x, y, z);
Note:
See TracChangeset
for help on using the changeset viewer.