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 += ''; theFrame += ''; theFrame += ''; theFrame += ''; theFrame += ''; theFrame += ''; theFrame += ''; theFrame += ''; theFrame += '
'+name+'
'+address; //theFrame += '
'+website+'
'+website+'
'; 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(); }