var map; function convertMap() { var imageElement = $("static"); var parameters = parseMapParameters(imageElement.src); var center = parameters.center.split(','); var longitude = parseFloat(center[0]); var latitude = parseFloat(center[1]); var zoom = parseInt(parameters.zoom); var size = parameters.size.split('x'); var mapElement = $('dynamic') Element.setStyle(mapElement, {width: size[0]+"px", height: size[1]+"px"}); Element.hide(imageElement); map = new GMap2(document.getElementById("dynamic")); map.setCenter(new GLatLng(longitude, latitude), zoom); } function parseMapParameters(staticMapSrc) { var mapSettings = new Hash(); var parametersString = staticMapSrc.split("?")[1]; var parameters = parametersString.split("&"); parameters.each(function(paramsPart) { var paramPair = paramsPart.split("="); mapSettings[paramPair[0]] = paramPair[1]; }); return mapSettings; } function loadGmapScriptWithCallback() { var script = document.createElement("script"); script.type = "text/javascript"; var key = parseMapParameters($("static").src).key; script.src = "http://maps.google.com/maps?file=api&v=2.x&key="+key+"&async=2&callback=convertMap"; document.body.appendChild(script); }