var activemap = new Array(); var infobulle = new Array(); var homecenterpoint = new GLatLng(51.52553,-0.07818); var homezoomlevel = 11; function loadMaps() { loadPostMaps(); } function loadPostMaps() { var OptionsStyleRectangle = { opacity: .1, border: "1px solid blue" } var OptionsBouton = { buttonHTML: "", buttonZoomingHTML: "", buttonStartingStyle: {width: '24px', height: '24px'} }; GDownloadUrl("http://nioufy.free.fr/dotclear2/index.php?dotmap.xml", function(data) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); /* widget map */ if (document.getElementById("widget_map")) { activemap["widget_map"] = new GMap2(document.getElementById("widget_map")); activemap["widget_map"].addControl(new GSmallMapControl()); activemap["widget_map"].setCenter(homecenterpoint,homezoomlevel); activemap["widget_map"].addControl(new GMapTypeControl()); } /* home map */ if (document.getElementById("dotmap_homemap")) { activemap["dotmap_homemap"] = new GMap2(document.getElementById("dotmap_homemap")); activemap["dotmap_homemap"].addControl(new GSmallMapControl()); activemap["dotmap_homemap"].setCenter(homecenterpoint,homezoomlevel); activemap["dotmap_homemap"].addControl(new GMapTypeControl()); } /* parse xml file */ for (var i = 0; i < markers.length; i++) { var lat = parseFloat(markers[i].getAttribute("lat")); var lon = parseFloat(markers[i].getAttribute("lng")); var point = new GLatLng(lat,lon, 1); // TOTO centrage map var plotname = markers[i].getAttribute("plot_name"); var plotdesc = markers[i].getAttribute("plot_desc"); var plotadr = markers[i].getAttribute("plot_adr"); var posturl = markers[i].getAttribute("post_url"); var postdate = markers[i].getAttribute("post_dt"); var posttitle = markers[i].getAttribute("post_title"); var plot_id = markers[i].getAttribute("plot_id"); var mapname = markers[i].getAttribute("mapname"); /* si existe : placer le point sur la map */ if (document.getElementById(mapname)) { if (!activemap[mapname]) { activemap[mapname] = new GMap2(document.getElementById(mapname)); activemap[mapname].addControl(new GSmallMapControl()); activemap[mapname].addControl(new GMapTypeControl()); } var marker = createXmlMarker(point, plotname,'' + plotname + '
' + plotdesc + '
' + '' + postdate + ' : ' + posttitle + ''); activemap[mapname].setCenter(new GLatLng(lat,lon), 12); activemap[mapname].setMapType(G_NORMAL_MAP); activemap[mapname].addOverlay(marker); } /* if */ /* * Infobulle pour home et widget map */ if (!infobulle[plot_id]) { infobulle[plot_id] = '' + plotname + '
' + plotdesc + '
' + '' + postdate + ' : ' + posttitle + ''; } else { infobulle[plot_id] = infobulle[plot_id] + "
" + '' + postdate + ' : ' + posttitle + ''; } if ( document.getElementById("widget_map")) { var widgetmarker = createXmlMarker(point, plotname,infobulle[plot_id]); activemap["widget_map"].setMapType(G_NORMAL_MAP); activemap["widget_map"].addOverlay(widgetmarker); } if (document.getElementById("dotmap_homemap")) { var homemapmarker = createXmlMarker(point,plotname,infobulle[plot_id]); activemap["dotmap_homemap"].setMapType(G_NORMAL_MAP); activemap["dotmap_homemap"].addOverlay(homemapmarker); activemap["dotmap_homemap"].addControl(new DragZoomControl(OptionsStyleRectangle, OptionsBouton), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(10,10))); } } /* for */ }); /* function(data) */ } function createXmlMarker(point, plotname,html) { var marker = new GMarker(point); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; } function plotPoint(lat,lon, html) { var marker = addMarker(lat,lon, html); activemap[i].addOverlay(marker); }