Mercurial > hg > LGMap
annotate map.js @ 7:0330b2138c87
add collecting post data from LGDataverse
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 04 Sep 2015 16:16:10 +0200 |
parents | 30b59e7b88c0 |
children | 8f05c2a84bba |
rev | line source |
---|---|
0 | 1 //geoserver url |
2 var url="http://geoserver.mpiwg-berlin.mpg.de/geoserver/China_Monograph_Project/ows"; | |
6 | 3 |
0 | 4 //"name": "layer name" |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
5 var overlayArray=[ |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
6 {name:"provincial distribution of local monographs", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
7 file:"China_Monograph_Project:monograph_distribution_prov_x", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
8 preload:true |
0 | 9 }, |
10 { | |
11 name:"test", | |
12 file:"China_Monograph_Project:v5_citas90_pref_pgn_utf", | |
13 preload:false | |
14 }, | |
15 { | |
16 name:"provincial capitals", | |
17 file:"China_Monograph_Project:all_monographs_capital_points", | |
18 preload:false | |
19 }]; | |
20 var datasetArray=[{name:"distribution of local monographs", | |
21 file:"./datasets/books_coordinates.csv", | |
22 preload:true | |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
23 |
0 | 24 }, |
25 { | |
26 name:"distribution of local monographs (by province)", | |
27 file:"./datasets/provincial_capital_coordinates.csv", | |
28 preload:false | |
29 }]; | |
30 var backgroundMapArray=[{ | |
31 name: 'Barrington Roman Empire', | |
32 url: 'http://pelagios.dme.ait.ac.at/tilesets/imperium/${z}/${x}/${y}.png', | |
33 type:'XYZ', | |
34 attribution: "(c) Barrington Roman Empiry, <a href='http://pelagios.dme.ait.ac.at/maps/greco-roman/'>Pelagios</a>" | |
35 }]; | |
36 var colorArray=[{//blue | |
37 r1 : 0, | |
38 g1 : 128, | |
39 b1 : 255, | |
40 r0 : 205, | |
41 g0 : 230, | |
42 b0 : 255 | |
43 },{//red | |
44 r1 : 255, | |
45 g1 : 84, | |
46 b1 : 22, | |
47 r0 : 255, | |
48 g0 : 218, | |
49 b0 : 205 | |
50 }, {//purple | |
51 r1 : 132, | |
52 g1 : 0, | |
53 b1 : 255, | |
54 r0 : 231, | |
55 g0 : 205, | |
56 b0 : 255 | |
57 }, {//green | |
58 r1 : 0, | |
59 g1 : 225, | |
60 b1 : 116, | |
61 r0 : 180, | |
62 g0 : 225, | |
63 b0 : 204 | |
64 }, {//yellow | |
65 r1 : 255, | |
66 g1 : 191, | |
67 b1 : 0, | |
68 r0 : 255, | |
69 g0 : 243, | |
70 b0 : 205 | |
71 }]; | |
72 var map, table,timeline,pieChart; | |
73 var urlParameter=new Array(); | |
74 $(document).ready(function(){ | |
75 GeoTemConfig.datasets=[]; | |
76 GeoTemConfig.colors=colorArray; | |
77 getUrlParameter(); | |
78 if(urlParameter['name']!=undefined&&urlParameter['file']!=undefined){ //See if this page is referred by search result | |
79 var file="./datasets/"+decodeURI(urlParameter['file']); | |
80 var name=decodeURI(urlParameter['name']); | |
81 var obj={name:name,file:file,preload:true}; | |
82 datasetArray.splice(0,0,obj); | |
83 } | |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
84 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
85 // zoe added for incoming json object from LGDataverse |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
86 if (urlParameter['name']!=undefined && urlParameter['file']==undefined && urlParameter['fileId']!=undefined) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
87 var file=undefined; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
88 var name=decodeURI(urlParameter['name']); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
89 var obj={name:name,file:file,preload:true}; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
90 datasetArray.splice(0,0,obj); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
91 }; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
92 // end |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
93 |
0 | 94 initWindowWidget(); |
95 initWidget(); //initial Sebastian's widgets | |
96 initToolbar(); //initial the left side icons | |
97 // Syncronize checkboxes and table widget | |
98 var subscriber; | |
99 Publisher.Subscribe('filterData',subscriber,function(data){ | |
100 $("#datasetContainer input:checkbox").each(function(){ | |
101 var name=$(this).attr("name"); | |
102 var dataset=$.grep(data,function(val,key){ | |
103 return val.label==name; | |
104 }); | |
105 if(dataset.length==0){ | |
106 this.checked=false; | |
107 } | |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
108 // zoe added |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
109 if (urlParameter['file']==undefined && urlParameter['fileId']!=undefined && name==urlParameter['name']) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
110 this.checked = true; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
111 this.disabled = true; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
112 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
113 // end |
0 | 114 }); |
115 }); | |
116 $(".windowWidget").hide(); | |
117 $(".windowWidget .windowWidgetBar .visibilityButton").click(); | |
118 | |
119 $("#aboutIcon").click(); | |
120 }); | |
121 function getUrlParameter(){ | |
122 //examine the parameter "mode" in the url | |
123 var url=window.location.href; | |
124 var pos=url.indexOf("?"); | |
125 if(pos!=-1){ | |
126 var params=url.substring(pos+1); | |
127 var varArray=params.split("&"); | |
128 for(var i=0; i<varArray.length; i++){ | |
129 pos=varArray[i].indexOf("="); | |
130 var name=varArray[i].substring(0,pos); | |
131 var value=varArray[i].substring(pos+1); | |
132 urlParameter[name]=value; | |
133 /* | |
134 if(name=="mode"){ | |
135 mode=value; | |
136 }*/ | |
137 } | |
138 } | |
139 } | |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
140 |
0 | 141 function loadDataset(name,fileName){ |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
142 // zoe added |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
143 if (fileName==undefined) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
144 // Get file json object from POST from LGDataverse by fileId in url |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
145 var fileId = urlParameter['fileId']; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
146 var lgdv_url = lgdataverse_url + "getDatafile?fileId="+fileId; // lgdataverse_url is a global var |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
147 console.log("lgdv_url:"+lgdv_url); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
148 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
149 var fileData = {}; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
150 $.ajax({ |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
151 url : lgdataverse_url+"getDatafile", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
152 async : false, |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
153 type : 'GET', |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
154 data: 'fileId='+fileId, |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
155 dataType: "json", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
156 success: function (data) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
157 console.log("getting file from LGDataverse success!"); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
158 fileData = data; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
159 }, |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
160 error: function (data) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
161 console.log("getting file from LGDataverse failed!" + data); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
162 alert("Data "+ urlParameter['name'] +" CANNOT be shown on the map."); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
163 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
164 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
165 }).done(function(result) { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
166 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
167 }); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
168 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
169 if (fileData.state == "ok") { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
170 /* |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
171 var json = [ |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
172 { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
173 // these fields are required in map |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
174 "description":"20卷 ╱ (民國) 崔正春修 (民國) 尚希寳纂 ╱ 民國十八年鉛印本", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
175 "lat":36.974178, |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
176 "lon":115.259262, |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
177 "place":"威縣", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
178 // ---- |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
179 "tableContent":{ |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
180 // these fields are shown as columns in the table |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
181 "description":"20卷 ╱ (民國) 崔正春修 (民國) 尚希寳纂 ╱ 民國十八年鉛印本", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
182 "name":"(民國) 威縣志", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
183 "place":"威縣", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
184 "testColumn1":"content1", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
185 "testColumn2":"content2", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
186 "testColumn3":"content3", |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
187 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
188 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
189 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
190 ]; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
191 */ |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
192 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
193 var dataCSVformat = fileData.file.dataString; |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
194 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
195 //console.log(dataCSVformat); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
196 var json = GeoTemConfig.convertCsv(dataCSVformat); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
197 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
198 GeoTemConfig.addDataset(new Dataset(GeoTemConfig.loadJson(json),name)); |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
199 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
200 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
201 } else { |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
202 // zoe end |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
203 |
0 | 204 var csvFile=GeoTemConfig.getCsv(fileName, |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
205 function(json){ |
0 | 206 GeoTemConfig.addDataset(new Dataset(GeoTemConfig.loadJson(json),name)); |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
207 |
0 | 208 //checking the checkbox has to be done here, because if done in the each loop below, it will be unchecked again in the Publisher.Subscribe function. For the Publisher.Subscribe function may be called when the dataset is not yet loaded, which causes dataset.length to be 0 and unchecks the checkbox |
209 $("#datasetContainer input:checkbox[value*='"+fileName+"']").prop("checked",true); | |
210 //rename the column "name" to "title" | |
211 $(".headerLabel").each(function(){ | |
212 if ($(this).html() == "name"){ | |
213 $(this).empty(); | |
214 $(this).html("title"); | |
215 } | |
216 }); | |
217 /*//this is redundant when calling GeoTemConfig.addDataset | |
218 //display in all widgets | |
219 map.display(GeoTemConfig.datasets); | |
220 timeline.display(GeoTemConfig.datasets); | |
221 table.display(GeoTemConfig.datasets); | |
222 pieChart.display(GeoTemConfig.datasets); */ | |
223 } | |
224 ); | |
7
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
225 |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
226 } |
0330b2138c87
add collecting post data from LGDataverse
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
6
diff
changeset
|
227 |
0 | 228 } |
229 function closeDataset(name,fileName){ | |
230 var idx; | |
231 //find the dataset to close by name | |
232 var data=$.grep(GeoTemConfig.datasets,function(val,key){ | |
233 if(val.label==name){ | |
234 idx=key; | |
235 } | |
236 return val.label==name; | |
237 }); | |
238 //GeoTemConfig.datasets.splice(idx,1); | |
239 GeoTemConfig.removeDataset(idx); | |
240 } | |
241 function initWidget(){ | |
242 var mapElem=document.getElementById("mapContainer"); | |
243 map=new WidgetWrapper(); | |
244 var mapWidget=new MapWidget(map,mapElem,{ | |
245 mapTitle:"", | |
246 alternativeMap:backgroundMapArray | |
247 }); | |
248 | |
249 var overlayLoaderElem=document.getElementById("overlayLoaderContainer"); | |
250 var overlayLoader=new WidgetWrapper(); | |
251 var overlayLoaderWidget=new OverlayloaderWidget(overlayLoader,overlayLoaderElem); | |
252 overlayLoaderWidget.attachMapWidget(mapWidget); | |
253 //insert overlay checkboxes | |
254 $.each(overlayArray,function(idx,obj){ | |
255 var name=obj.name; | |
256 var file=obj.file; | |
257 var preload=obj.preload; | |
258 var optionObj=$("<div class='option'></div>"); | |
259 $("#overlayContainer").append(optionObj); | |
260 var checkBoxObj=$("<input type='checkbox' name='"+name+"' value='"+file+"'>"); | |
261 checkBoxObj.prop("checked",preload); | |
262 optionObj.append(checkBoxObj); | |
263 var nameObj=$("<div class='label'>"+name+"</div>"); | |
264 optionObj.append(nameObj); | |
265 if(preload){ | |
266 overlayLoaderWidget.overlayLoader.distributeArcGISWMS(url,file); | |
267 } | |
268 }); | |
269 | |
270 $("#overlayContainer input:checkbox").click(function(e){ | |
271 //dirty insertion and deletion, delete all the overlays and insert them in the specified sequence | |
272 //in order to maintain the sequence of overlays, so that the smaller one will always be on top of the bigger ones | |
273 //in the overlayLoader, clicking on the "x" button deletes the overlay. Here deletion is done by triggering the click event rather than deleting the overlay directly | |
274 while($("#overlayLoaderContainer div:last-child a").length!=0){ | |
275 $("#overlayLoaderContainer div a:nth-child(1)").click(); | |
276 } | |
277 | |
278 $("#overlayContainer input:checkbox").each(function(){ | |
279 if($(this).is(":checked")){ | |
280 overlayLoaderWidget.overlayLoader.distributeArcGISWMS(url, | |
281 $(this).val()); | |
282 } | |
283 }); | |
284 //stop the event from propagating, or the list would close every time the user checks an item | |
285 e.stopPropagation(); | |
286 /* | |
287 //normal insertion and deletion | |
288 if($(this).is(":checked")){//selected | |
289 overlayLoaderWidget.overlayLoader.distributeArcGISWMS("http://geoserver.mpiwg-berlin.mpg.de/geoserver/China_Monograph_Project/ows", | |
290 $(this).val()); | |
291 }else{//deselect | |
292 var name=url+" - "+$(this).val(); | |
293 var layerNameArray=$("#overlayLoaderContainer > div:last-child").html().split('<a href="">(x)</a>'); | |
294 var idx=$.inArray(name,layerNameArray); | |
295 $("#overlayLoaderContainer div a:nth-child("+(idx+1)+")").click(); | |
296 }*/ | |
297 }); | |
298 | |
299 | |
300 //insert dataset checkboxes | |
301 $.each(datasetArray,function(idx,obj){ | |
302 var name=obj.name; | |
303 var file=obj.file; | |
304 var preload=obj.preload; | |
305 var optionObj=$("<div class='option'></div>"); | |
306 $("#datasetContainer ").append(optionObj); | |
307 var checkBoxObj=$("<input type='checkbox' name='"+name+"' value='"+file+"'>"); | |
308 optionObj.append(checkBoxObj); | |
309 //checkBoxObj.prop("checked",preload); | |
310 var nameObj=$("<div class='label'>"+name+"</div>"); | |
311 optionObj.append(nameObj); | |
312 if(preload){ | |
313 loadDataset(name,file); | |
314 } | |
315 }); | |
316 $("#datasetContainer input:checkbox").click(function(){ | |
317 /* | |
318 //dirty insertion and deletion, too slow | |
319 while($("#tableContainer .tableTabs").children().length!=0){ | |
320 //console.log($("#tableContainer .tableTabs").children().length); | |
321 //$("#tableContainer .tableTabs .tableTab:nth-child(1) .smallButton")[0].onclick(); | |
322 GeoTemConfig.removeDataset(0); | |
323 } | |
324 | |
325 $("#datasetContainer .content input:checkbox").each(function(){ | |
326 if($(this).is(":checked")){ | |
327 loadDataset($(this).attr("name"),$(this).val()); | |
328 } | |
329 }); | |
330 */ | |
331 if($(this).is(":checked")){//selected | |
332 loadDataset($(this).attr("name"),$(this).val()); | |
333 }else{ | |
334 closeDataset($(this).attr("name"),$(this).val()); | |
335 } | |
336 }); | |
337 var timelineElem=document.getElementById("timelineContainer"); | |
338 timeline=new WidgetWrapper(); | |
339 var timelineWidget=new FuzzyTimelineWidget(timeline,timelineElem,{ | |
340 timelineTitle:"" | |
341 }); | |
342 | |
343 var tableElem=document.getElementById("tableContainer"); | |
344 table=new WidgetWrapper(); | |
345 var tableWidget=new TableWidget(table,tableElem); | |
346 | |
347 var pieChartElem=document.getElementById("pieChartContainer"); | |
348 pieChart=new WidgetWrapper(); | |
349 var pieChartWidget=new PieChartWidget(pieChart,pieChartElem); | |
350 //pieChartWidget.addPieChart(0,"place"); | |
351 } | |
352 function initToolbar(){ | |
353 var mode=-1; | |
354 if(urlParameter['mode']!=undefined) | |
355 mode=urlParameter['mode']; | |
356 if(mode==1){//locate the overlay selector on the map toolbar | |
357 $("#overlayIcon").hide(); | |
358 var overlayContainerObj=$("#overlayContainer"); | |
359 var overlayTitleObj=$("<td>Overlay</td>"); | |
360 overlayTitleObj.insertAfter("#mapContainer .absoluteToolbar tr:nth-child(1) td:nth-child(1)"); | |
361 var overlaySelectorObj=$("<td></td>"); | |
362 var overlayContainerPadding=5; | |
363 overlayContainerObj.css("padding",overlayContainerPadding+"px"); | |
364 //give the overlay selector the same look as the that of the background map and adjust the width | |
365 overlaySelectorObj.append("<div class='dropdownLeft'></div>"); | |
366 overlaySelectorObj.append("<div class='dropdownSelection'>select overlays</div>"); | |
367 overlaySelectorObj.append("<div class='dropdownButtonEnabled'></div>"); | |
368 overlaySelectorObj.insertAfter("#mapContainer .absoluteToolbar tr:nth-child(2) td:nth-child(1)"); | |
369 var w=parseInt(overlayContainerPadding*2+overlayContainerObj.width()); | |
370 overlaySelectorObj.width(w); | |
371 w=w-overlaySelectorObj.children(".dropdownLeft").width()-overlaySelectorObj.children(".dropdownButtonEnabled").width(); | |
372 overlaySelectorObj.children(".dropdownSelection").width(w); | |
373 overlaySelectorObj.append(overlayContainerObj); | |
374 //hide the overlay list and adjust the position | |
375 overlayContainerObj.hide(); | |
376 overlayContainerObj.css("position","absolute"); | |
377 var t=overlaySelectorObj.offset().top-parseInt(overlayContainerObj.css("padding"))+overlaySelectorObj.children(".dropdownButtonEnabled").height(); | |
378 //var l=overlaySelectorObj.offset().left-overlayContainerObj.width()/2; | |
379 var l=overlaySelectorObj.position().left-$("#rightWrapper").css("margin-left"); | |
380 overlayContainerObj.css("top",t); | |
381 overlayContainerObj.css("left",l); | |
382 overlayContainerObj.css("z-index",20000); | |
383 //toggle the visibility of the overlay list by clicking on the selector | |
384 overlaySelectorObj.click(function(){ | |
385 var visible=overlayContainerObj.is(":visible"); | |
386 if(visible){ | |
387 $(this).children(".selector").show(); | |
388 overlayContainerObj.hide(); | |
389 }else{ | |
390 $(this).children(".selector").hide(); | |
391 overlayContainerObj.show(); | |
392 } | |
393 }); | |
394 } | |
395 | |
396 $(".icon").each(function(){//adjust the position of the windows | |
397 var t=$(this).offset().top; | |
398 var l=$("#rightWrapper").css("margin-left"); | |
399 var windowName="."+$(this).attr("id"); | |
400 windowName=windowName.replace("Icon",""); | |
401 var windowObj=$(windowName); | |
402 windowObj.css("top",t); | |
403 windowObj.css("left",l); | |
404 }); | |
405 | |
406 // The following two sections are to hide/show the windows | |
407 $(".icon").click(function(){//toggle the visibility of the window by clicking on the icons | |
408 var windowName="."+$(this).attr("id"); | |
409 windowName=windowName.replace("Icon",""); | |
410 var windowObj=$(windowName); | |
411 if(windowObj.is(":visible")){ | |
412 //hide the window | |
413 windowObj.hide(); | |
414 $(this).removeClass("selected"); | |
415 }else{ | |
416 //show the window | |
417 if(windowObj.children(".windowWidgetBar").children(".visibilityButton").html()=="+"){ | |
418 windowObj.children(".windowWidgetBar").children(".visibilityButton").click(); | |
419 } | |
420 windowObj.show(); | |
421 $(this).addClass("selected"); | |
422 } | |
423 }); | |
424 $(".windowWidget .windowWidgetBar .visibilityButton").click(function(){ | |
425 if($(this).html()=="+"){//if the window is minimized, it should be hidden | |
426 $(this).parent().parent().hide(); | |
427 var windowName=$(this).parent().parent().attr("class"); | |
428 windowName=windowName.replace("container",""); | |
429 windowName=windowName.replace("windowWidget",""); | |
430 windowName=windowName.replace("ui-draggable",""); | |
431 windowName=windowName.replace(" ",""); | |
432 windowName=windowName.trim(); | |
433 windowName="#"+windowName+"Icon"; | |
434 $(windowName).removeClass("selected"); | |
435 } | |
436 }); | |
437 | |
438 } |