]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Layer/SphericalMercator.html
initial commit
[syp.git] / openlayers / tests / Layer / SphericalMercator.html
1 <html>
2 <head>
3     <script src="../../lib/OpenLayers.js"></script>
4     <script type="text/javascript">
5     function test_SphericalMercator_forwardMercator(t) {
6         t.plan(12);
7         var arctic = OpenLayers.Layer.SphericalMercator.forwardMercator(0, 85);
8         var antarctic = OpenLayers.Layer.SphericalMercator.forwardMercator(0, -85);
9         var hawaii = OpenLayers.Layer.SphericalMercator.forwardMercator(-180, 0);
10         var phillipines = OpenLayers.Layer.SphericalMercator.forwardMercator(180, 0);
11         var ne = OpenLayers.Layer.SphericalMercator.forwardMercator(180, 90);
12         var sw = OpenLayers.Layer.SphericalMercator.forwardMercator(-180, -90);
13         
14         t.eq(arctic.lon, 0, "Arctic longitude is correct");
15         t.eq(Math.round(arctic.lat), 19971869, "Arctic latitude is correct");
16         
17         t.eq(antarctic.lon, 0, "Antarctic longitude is correct");
18         t.eq(Math.round(antarctic.lat), -19971869, "Antarctic latitude is correct");
19         
20         t.eq(Math.round(hawaii.lat), 0, "Hawaiian lat is correct");
21         t.eq(hawaii.lon, -20037508.34, "Hawaiian lon is correct");
22         
23         t.eq(Math.round(phillipines.lat), 0, "Phillipines lat is correct");
24         t.eq(phillipines.lon, 20037508.340, "Phillipines lon is correct");
25        
26         // Rounding errors make this not infinity 
27         t.ok(ne.lat > 50000000, "NE lat is correct");
28         t.eq(ne.lon, 20037508.34, "NE lon is correct");
29         
30         t.eq(sw.lat, -Infinity, "SW lat is correct");
31         t.eq(sw.lon, -20037508.34, "SW lon is correct");
32     } 
33     
34     function test_sphericalMercator_inverseMercator(t) {
35         t.plan(4);
36         var sw =  OpenLayers.Layer.SphericalMercator.inverseMercator(-20037508.34,  -20037508.34);
37         var ne =  OpenLayers.Layer.SphericalMercator.inverseMercator(20037508.34,  20037508.34);
38         t.eq(sw.lon, -180, "Southwest lon correct");
39         t.eq(ne.lon, 180, "Northeast lon correct");
40         
41         t.eq(sw.lat, -85.051128779807, "Southwest lat correct");
42         t.eq(ne.lat, 85.051128779807, "Northeast lat correct");
43     }
44
45     function strToFixed(str, dig) { 
46         if(dig == undefined) { 
47             dig = 5; 
48         } 
49         return str.replace(/(\d+\.\d+)/g, function(match) { 
50             return parseFloat(match).toFixed(dig); 
51         }); 
52     } 
53  
54     function test_SphericalMercator_projectForward(t) { 
55         t.plan(1);
56         var point = new OpenLayers.Geometry.Point(10, 20); 
57         OpenLayers.Layer.SphericalMercator.projectForward(point); 
58
59         t.eq(strToFixed(point.toString()), 
60              strToFixed("POINT(1113194.9077777779 2273030.9266712805)"), 
61              "point transforms from EPSG:4326 to Spherical Mercator"); 
62     } 
63          
64     function test_SphericalMercator_to4326(t) { 
65         t.plan(1);
66         var point = new OpenLayers.Geometry.Point(1113195, 2273031); 
67
68         OpenLayers.Layer.SphericalMercator.projectInverse(point); 
69          
70         t.eq(strToFixed(point.toString()), 
71              strToFixed("POINT(10.000000828446318 20.000000618997227)"), 
72              "point transforms from EPSG:4326 to Spherical Mercator"); 
73     }
74     
75     function test_SphericalMercator_addTransform(t) {
76         // this class should add two methods to the
77         // OpenLayers.Projection.transforms object
78         t.plan(4);
79         var wgs84 = OpenLayers.Projection.transforms["EPSG:4326"];
80         t.ok(wgs84 instanceof Object, "EPSG:4326 exists in table");
81         
82         var smerc = OpenLayers.Projection.transforms["EPSG:900913"];
83         t.ok(smerc instanceof Object, "EPSG:900913 exists in table");
84         
85         t.ok(wgs84["EPSG:900913"] === OpenLayers.Layer.SphericalMercator.projectForward,
86              "from EPSG:4326 to EPSG:900913 correctly defined");
87         t.ok(smerc["EPSG:4326"] === OpenLayers.Layer.SphericalMercator.projectInverse,
88              "from EPSG:900913 to EPSG:4326 correctly defined");
89     }
90     
91   </script> 
92 </head>
93 <body>
94 </body>
95 </html>