annotate gis_gui/blocks/map_newwindow.html.pt @ 268:f25ee0424ce6

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