source: Dev/branches/jQueryUI/client/d3/examples/albers/albers.html @ 249

Last change on this file since 249 was 249, checked in by hendrikvanantwerpen, 13 years ago

This one's for Subversion, because it's so close...

First widget (stripped down sequencer).
Seperated client and server code in two direcotry trees.

File size: 3.5 KB
Line 
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.