source: Dev/trunk/d3/examples/albers/albers.html @ 76

Last change on this file since 76 was 76, checked in by fpvanagthoven, 14 years ago

d3

File size: 3.5 KB
RevLine 
[76]1<!DOCTYPE html>
2<html>
3  <head>
4    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
5    <title>Albers Projection</title>
6    <script type="text/javascript" src="../../d3.js"></script>
7    <script type="text/javascript" src="../../d3.geo.js"></script>
8    <script type="text/javascript" src="../../lib/jquery/jquery.min.js"></script>
9    <script type="text/javascript" src="../../lib/jquery-ui/jquery-ui.min.js"></script>
10    <style type="text/css">
11
12@import url("../../lib/jquery-ui/jquery-ui.css");
13
14body, .ui-widget {
15  font: 14px Helvetica Neue;
16}
17
18svg {
19  width: 960px;
20  height: 500px;
21  border: solid 1px #ccc;
22  background: #eee;
23}
24
25#states path {
26  fill: #ccc;
27  stroke: #fff;
28}
29
30#states circle {
31  fill: #fcc;
32  stroke: #000;
33}
34
35div {
36  width: 960px;
37}
38
39    </style>
40  </head>
41  <body>
42    <h3>Albers Projection</h3>
43    <script type="text/javascript">
44
45// Our projection.
46var xy = d3.geo.albers(),
47    path = d3.geo.path().projection(xy);
48
49d3.select("body")
50  .append("svg:svg")
51  .append("svg:g")
52    .attr("id", "states");
53
54d3.json("../data/us-states.json", function(collection) {
55  d3.select("#states")
56    .selectAll("path")
57      .data(collection.features)
58    .enter().append("svg:path")
59      .attr("d", path);
60  d3.select("#states")
61    .append("svg:circle")
62      .attr("r", 10)
63      .attr("transform", "translate(" + xy(xy.origin()).join(",") + ")")
64});
65
66function refresh() {
67  d3.selectAll("#states path")
68      .attr("d", path);
69  d3.select("#states circle")
70      .attr("transform", "translate(" + xy(xy.origin()).join(",") + ")")
71  d3.select("#parallels span")
72      .text(xy.parallels());
73  d3.select("#lon span")
74      .text(xy.origin()[0]);
75  d3.select("#lat span")
76      .text(xy.origin()[1]);
77  d3.select("#scale span")
78      .text(xy.scale());
79  d3.select("#translate-x span")
80      .text(xy.translate()[0]);
81  d3.select("#translate-y span")
82      .text(xy.translate()[1]);
83}
84
85    </script><p>
86    <div id="lon">origin.longitude: <span>-98</span></div>
87    <div id="lat">origin.latitude: <span>38</span></div><p>
88    <div id="parallels">parallels: <span>29.5,45.5</span></div><p>
89    <div id="scale">scale: <span>1000</span></div><p>
90    <div id="translate-x">translate.x: <span>480</span></div>
91    <div id="translate-y">translate.y: <span>250</span></div>
92    <script type="text/javascript">
93
94$("#parallels").slider({
95  range: true,
96  min: -90,
97  max: 90,
98  step: 1e-1,
99  values: [29.5, 45.5],
100  slide: function(event, ui) {
101    xy.parallels(ui.values);
102    refresh();
103  }
104});
105
106$("#lon").slider({
107  min: -180,
108  max: 180,
109  step: 1e-1,
110  value: -98,
111  slide: function(event, ui) {
112    var origin = xy.origin();
113    origin[0] = ui.value;
114    xy.origin(origin);
115    refresh();
116  }
117});
118
119$("#lat").slider({
120  min: -90,
121  max: 90,
122  step: 1e-1,
123  value: 38,
124  slide: function(event, ui) {
125    var origin = xy.origin();
126    origin[1] = ui.value;
127    xy.origin(origin);
128    refresh();
129  }
130});
131
132$("#scale").slider({
133  min: 0,
134  max: 3000,
135  value: 1000,
136  slide: function(event, ui) {
137    xy.scale(ui.value);
138    refresh();
139  }
140});
141
142$("#translate-x").slider({
143  min: -2000,
144  max: 2000,
145  value: 480,
146  slide: function(event, ui) {
147    var translate = xy.translate();
148    translate[0] = ui.value;
149    xy.translate(translate);
150    refresh();
151  }
152});
153
154$("#translate-y").slider({
155  min: -2000,
156  max: 2000,
157  value: 250,
158  slide: function(event, ui) {
159    var translate = xy.translate();
160    translate[1] = ui.value;
161    xy.translate(translate);
162    refresh();
163  }
164});
165
166    </script>
167  </body>
168</html>
Note: See TracBrowser for help on using the repository browser.