function makeMap() {
var map = new GMap(document.getElementById("gmap"));
var point = new GPoint(-0.114455,51.505457);
//map.setCenter(new GLatLng(51.505457, -0.114455), 15);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.centerAndZoom(point, 2);
var thePointIs = map.getCenter();
var baseIcon = new GIcon();
baseIcon.shadow = "/imgs/shadow.png";
baseIcon.iconSize = new GSize(18, 18);
baseIcon.shadowSize = new GSize(22, 22);
baseIcon.iconAnchor = new GPoint(9, 34);
//alert("Anchor is : "+baseIcon.iconAnchor);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
function createWindowFrame ( name, address, thumb, theLink, website ) {
var theFrame;
address = address.replace(/#/g,'
');
theFrame = '
';
theFrame += '| '+name+' |
';
theFrame += '';
theFrame += ''+address;
//theFrame += ' '+website+' | ';
theFrame += ' | ';
theFrame += '
';
theFrame += '';
theFrame += '| '+website+' | ';
theFrame += '
';
theFrame += '
';
return theFrame;
}
function createMarker(point, iconname, info) {
var icon = new GIcon(baseIcon);
icon.image = iconname.getAttribute("image");
var marker = new GMarker(point, icon);
/* if nothing then it fails
var thumbnail = info.getElementsByTagName("img")[0].childNodes[0].nodeValue;
var theLink = info.getElementsByTagName("url")[0].childNodes[0].nodeValue;
var theName = info.getElementsByTagName("FullName")[0].childNodes[0].nodeValue;
var address = info.getElementsByTagName("address")[0].childNodes[0].nodeValue;
var theId = info.getElementsByTagName("id")[0].childNodes[0].nodeValue;
var website = info.getElementsByTagName("website")[0].childNodes[0].nodeValue;
*/
// 30/03/2010 new code
var valueArray = new Array();
var nodeArray = ["img","url","FullName","address","id","website"];
var i = 0;
nodeArray.forEach(function(item) {
var node = info.getElementsByTagName(item)[0].childNodes[0];
if (node)
valueArray[i] = node.nodeValue;
else
valueArray[i] = '';
i++;
});
var thumbnail = valueArray[0];
var theLink = valueArray[1];
var theName = valueArray[2];
var address = valueArray[3];
var theId = valueArray[4];
var website = valueArray[5];
// end new code
marker.id = theId;
//address = address.replace(/#/g,'
');
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml( createWindowFrame( theName, address, thumbnail, theLink, website ) ) ;
});
return marker;
}
var request = GXmlHttp.create();
request.open("GET", "/mapIconsXml.php", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = request.responseXML.documentElement;
//alert(xmlDoc);
var points = xmlDoc.getElementsByTagName("point");
var icons = xmlDoc.getElementsByTagName("icon");
var info = xmlDoc.getElementsByTagName("info");
for (var i = 0; i < points.length; i++) {
var point = new GPoint(parseFloat(points[i].getAttribute("lng")),parseFloat(points[i].getAttribute("lat")));
var marker = createMarker(point, icons[i], info[i]);
map.addOverlay(marker);
}
}
}
request.send(null);
}
if (window.addEventListener) {
window.addEventListener("load",makeMap,false);
} else if (window.attachEvent) {
window.attachEvent("onload",makeMap);
} else {
window.onload = makeMap();
}