a gmap-api v3 compatible replacement for the googlemap
[plewww.git] / googlemap / googlemap.js
1 /* this function should solve the issue of calling a function
2  * upon page load, that badly depends on the browser
3  * see an example in http://svn.planet-lab.org/wiki/GooglemapSetup
4  */
5 function onContent(f){
6   var 
7     a=onContent,
8     b=navigator.userAgent,
9     d=document,
10     w=window,
11     c="onContent",
12     e="addEventListener",
13     o="opera",
14     r="readyState",
15     s="<scr".concat("ipt defer src='//:' on",r,"change='if(this.",r,"==\"complete\"){this.parentNode.removeChild(this);",c,".",c,"()}'></scr","ipt>");
16   a[c]=(function(o){return function(){a[c]=function(){};for(a=arguments.callee;!a.done;a.done=1)f(o?o():o)}})(a[c]);
17   if(d[e])d[e]("DOMContentLoaded",a[c],false);
18   if(/WebKit|Khtml/i.test(b)||(w[o]&&parseInt(w[o].version())<9))(function(){/loaded|complete/.test(d[r])?a[c]():setTimeout(arguments.callee,1)})();
19   else if(/MSIE/i.test(b))d.write(s);
20 }
21
22 /* the PLE snippet for embedding a googlemap in front page */
23 /*
24 <p><?php
25 drupal_set_html_head('<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=<..>"
26       type="text/javascript"></script>');
27 drupal_add_js('googlemap/googlemap.js',TRUE);
28 drupal_set_html_head('<script type="text/javascript">
29 function my_googlemap () { ts = new Date().getTime(); googlemap("map_area","http://www.planet-lab.eu/sites/sites.kml?" + ts,52,15,4);} 
30 onContent(my_googlemap);
31 </script>');
32 ?>
33 <div id="map_area" style="width: 640px; height: 480px">  </div></p>
34 */
35
36 function googlemap (htmlid,kmlurl,centerLat, centerLon, zoom) {
37   //  alert ('in googlemap, kmlurl='+kmlurl+',id ='+htmlid);
38   if (GBrowserIsCompatible()) {
39     var map = new GMap2(document.getElementById(htmlid));
40     map.setCenter(new GLatLng(centerLat, centerLon), zoom);
41     map.addControl(new GLargeMapControl());
42     map.addControl(new GMapTypeControl());
43     map.addControl(new GOverviewMapControl());
44     /*var geocoder = new GClientGeocoder();*/
45     map.setMapType(G_SATELLITE_MAP);
46     
47     geoXml = new GGeoXml(kmlurl);
48     map.addOverlay(geoXml);
49   }
50 }
51
52 window.onunload=GUnload;