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);
}