268
|
1 <html xmlns="http://www.w3.org/1999/xhtml"
|
|
2 tal:define="mapParams python:request.get('map_params',None)">
|
226
|
3 <head>
|
|
4 <title tal:content="template/title">Map Points in Time</title>
|
268
|
5 <script type="text/javascript" language="JavaScript" src="lib/jquery-1.4.2.js"> </script>
|
|
6 <script type="text/javascript" language="JavaScript" src="lib/blocks.js"> </script>
|
|
7 <script type="text/javascript" language="JavaScript" src="lib/map.js"> </script>
|
|
8 <script type="text/javascript" language="JavaScript" src="lib/jquery.clickmenu.pack.js"> </script>
|
|
9 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
|
|
10 <script type="text/javascript" language="JavaScript" >
|
|
11
|
|
12 function updateMap(elem,map_params) {
|
|
13
|
|
14 //************
|
|
15 console.debug("updateMap:", elem, ", ", map_params);
|
|
16 //*************
|
|
17
|
|
18 if (elem == null) {
|
|
19 elem = this.element;
|
|
20 }
|
|
21 if (map_params == null) {
|
|
22 map_params = this.params;
|
|
23 }
|
|
24 // update and draw the google map
|
|
25 var le = $(elem).find(".map_box").get(0);
|
|
26 // create empty map
|
|
27
|
|
28 if (google != null) {
|
|
29 var latlng = new google.maps.LatLng(29, 116);
|
|
30 var mapOpts = {
|
|
31 zoom: 2,
|
|
32 center: latlng,
|
|
33 mapTypeId: google.maps.MapTypeId.TERRAIN,
|
|
34 scaleControl: true
|
|
35 };
|
|
36 var map = new google.maps.Map(le, mapOpts);
|
|
37 console.debug("new google map=",map," on el=",le);
|
|
38 }
|
|
39 // add the layers
|
|
40 var layerList = map_params.map_layers;
|
|
41 for (var i = 0; i < layerList.length; i++) {
|
|
42 if (!layerList[i].display) {
|
|
43 continue;
|
|
44 }
|
|
45 var params = layerList[i].layer;
|
|
46 var paramstr = "format=KML_URL";
|
|
47 if (params.position_field && params.position_field != "Default") {
|
|
48 paramstr += "&gis_id_field="+params.position_field;
|
|
49 }
|
|
50 if (params.color_field != "Default") {
|
|
51 paramstr += "&color_field="+params.color_field;
|
|
52 }
|
|
53 if (params.geometry_field != "Default") {
|
|
54 paramstr += "&geometry_field="+params.geometry_field;
|
|
55 }
|
|
56 if (params.sort_field != "Default") {
|
|
57 paramstr += "&sort_field="+params.sort_field;
|
|
58 }
|
|
59 if (params.connect_line) {
|
|
60 paramstr += "&connect_line="+params.connect_line;
|
|
61 }
|
|
62 var layerurl = "../db/RESTdb/db/public/" + escape(params.table) + "?" + paramstr;
|
|
63 jQuery.get(layerurl, function (data, textStatus, XMLHttpRequest) {
|
|
64 // function after load kml url finished
|
|
65 console.debug("kml url loaded! this=", this );
|
|
66 console.debug(" data=", data );
|
|
67 console.debug(" data type=", typeof(data));
|
|
68 if (typeof(data) == "string") {
|
|
69 var kmlURL = data;
|
|
70 } else {
|
|
71 // broken, what now?
|
|
72 return;
|
|
73 }
|
|
74 // render layer
|
|
75 if (google != null) {
|
|
76 var newMarker=new google.maps.KmlLayer(kmlURL);
|
|
77 console.debug("new marker layer no",i,"=",newMarker);
|
|
78 console.debug(" map=",map);
|
|
79 newMarker.setMap(map);
|
|
80 console.debug("Map-Update finished");
|
|
81 }
|
|
82 });
|
|
83 }
|
|
84 return map;
|
|
85 };
|
|
86
|
|
87 function loadListOfItems(storeTag,storeType,callback) {
|
|
88 // loads list of id and type objects and executes callback function
|
|
89 var url = "../db/RESTjson/db/public/gui_objects/"+escape(storeTag)+"/"+storeType+"?recursive=true";
|
|
90
|
|
91 //************
|
|
92 console.debug("jsonUrl:", url);
|
|
93 //*************
|
|
94
|
|
95 jQuery.getJSON(url,callback);
|
|
96
|
|
97 //************
|
|
98 console.debug("jsoncallback:", callback);
|
|
99 //*************
|
|
100 };
|
|
101 </script>
|
226
|
102
|
|
103 <link href="lib/clickmenu.css" rel="stylesheet" content="text/css"/>
|
|
104 <link href="lib/blocks.css" rel="stylesheet" content="text/css"/>
|
268
|
105 <link href="lib/map.css" rel="stylesheet" content="text/css"/>
|
226
|
106 </head>
|
268
|
107 <body tal:attributes="onload string:updateMap($here,'$mapParams')" >
|
|
108 <tal:block metal:use-macro="here/template/macros/module">
|
|
109 <tal:block metal:fill-slot="content">
|
|
110
|
|
111 <div class="map_box">[loading...]</div>
|
226
|
112
|
268
|
113 </tal:block>
|
|
114 </tal:block>
|
226
|
115 </body>
|
|
116 </html> |