equal
deleted
inserted
replaced
|
1 d3.geo.mercator = function() { |
|
2 var scale = 500, |
|
3 translate = [480, 250]; |
|
4 |
|
5 function mercator(coordinates) { |
|
6 var x = coordinates[0] / 360, |
|
7 y = -(Math.log(Math.tan(Math.PI / 4 + coordinates[1] * d3_geo_radians / 2)) / d3_geo_radians) / 360; |
|
8 return [ |
|
9 scale * x + translate[0], |
|
10 scale * Math.max(-.5, Math.min(.5, y)) + translate[1] |
|
11 ]; |
|
12 } |
|
13 |
|
14 mercator.invert = function(coordinates) { |
|
15 var x = (coordinates[0] - translate[0]) / scale, |
|
16 y = (coordinates[1] - translate[1]) / scale; |
|
17 return [ |
|
18 360 * x, |
|
19 2 * Math.atan(Math.exp(-360 * y * d3_geo_radians)) / d3_geo_radians - 90 |
|
20 ]; |
|
21 }; |
|
22 |
|
23 mercator.scale = function(x) { |
|
24 if (!arguments.length) return scale; |
|
25 scale = +x; |
|
26 return mercator; |
|
27 }; |
|
28 |
|
29 mercator.translate = function(x) { |
|
30 if (!arguments.length) return translate; |
|
31 translate = [+x[0], +x[1]]; |
|
32 return mercator; |
|
33 }; |
|
34 |
|
35 return mercator; |
|
36 }; |