Ticket #5327: swissgridtest.patch
| File swissgridtest.patch, 3.6 KB (added by , 15 years ago) |
|---|
-
test/unit/org/openstreetmap/josm/data/projection/SwissGridTest.java
19 19 * source: http://www.swisstopo.admin.ch/internet/swisstopo/en/home/topics/survey/sys/refsys/switzerland.parsysrelated1.37696.downloadList.97912.DownloadFile.tmp/swissprojectionen.pdf 20 20 */ 21 21 ProjData[] data = { 22 new ProjData("Zimmerwald", d(7,27,54.983506), d(46,52,37.540562), 947.149, 602030.680, 191775.030, 897.915 ),23 new ProjData("Chrischona", d(7,40,6.983077), d(47,34, 1.385301), 504.935, 617306.300, 268507.300, 456.064 ),24 new ProjData("Pfaender", d(9,47,3.697723), d(47,30,55.172797), 1089.372, 776668.105, 265372.681, 1042.624 ),25 new ProjData("La Givrine", d(6,6,7.326361), d(46,27,14.690021), 1258.274, 497313.292, 145625.438, 1207.434 ),26 new ProjData("Monte Generoso", d(9,1,16.389053), d(45,55,45.438020), 1685.027, 722758.810, 87649.670, 1636.600 ) };22 new ProjData("Zimmerwald", d(7,27,54.983506), d(46,52,37.540562), 947.149, 602030.680, 191775.030, 897.915, 1), 23 new ProjData("Chrischona", d(7,40,6.983077), d(47,34, 1.385301), 504.935, 617306.300, 268507.300, 456.064, 1), 24 new ProjData("Pfaender", d(9,47,3.697723), d(47,30,55.172797), 1089.372, 776668.105, 265372.681, 1042.624, 1), 25 new ProjData("La Givrine", d(6,6,7.326361), d(46,27,14.690021), 1258.274, 497313.292, 145625.438, 1207.434, 1), 26 new ProjData("Monte Generoso", d(9,1,16.389053), d(45,55,45.438020), 1685.027, 722758.810, 87649.670, 1636.600, 1.5) }; 27 27 28 28 private double d(double deg, double min, double sec) { 29 29 return deg + min / 60. + sec / 3600.; … … 33 33 public String name; 34 34 public LatLon ll; 35 35 public EastNorth en; 36 public ProjData(String name, double lon, double lat, double h1, double x, double y, double h2) { 36 public double pressision; 37 public ProjData(String name, double lon, double lat, double h1, double x, double y, double h2, double pressision) { 37 38 this.name = name; 38 39 ll = new LatLon(lat, lon); 39 40 en = new EastNorth(x, y); 41 this.pressision = pressision; 40 42 } 41 43 } 42 44 … … 46 48 String errs = ""; 47 49 for (ProjData pd : data) { 48 50 EastNorth en2 = swiss.latlon2eastNorth(pd.ll); 49 if (Math.abs(pd.en.east() - en2.east()) > 0.01 || Math.abs(pd.en.north() - en2.north()) > 0.01) {51 if (Math.abs(pd.en.east() - en2.east()) > pd.pressision || Math.abs(pd.en.north() - en2.north()) > pd.pressision) { 50 52 errs += String.format("%s should be: %s but is: %s\n", pd.name, pd.en, en2); 51 53 } 52 54 } 55 System.out.println(errs); 53 56 assertTrue(errs, errs.length() == 0); 54 57 } 55 58 … … 134 137 EastNorth en = new EastNorth(700000.0, 100000.0); 135 138 LatLon ll = Main.proj.eastNorth2latlon(en); 136 139 System.out.println(ll); 137 assertTrue("Ref", Math.abs(ll.lat() - 46.0 + 2.0 / 60 + 38.87 / 3600) < 0.00001);138 assertTrue("Ref", Math.abs(ll.lon() - 8.0 + 43.0 / 60 + 49.79 / 3600) < 0.00001);140 assertTrue("Ref", Math.abs(ll.lat() - (46.0 + 2.0 / 60 + 38.87 / 3600)) < 0.00001); 141 assertTrue("Ref", Math.abs(ll.lon() - (8.0 + 43.0 / 60 + 49.79 / 3600)) < 0.00001); 139 142 } 140 143 } 141 144
