    var iconStandard = new GIcon(); 
    iconStandard.image = 'core/modules/google_maps/templates/img/gmap-icon-standard.png';
    iconStandard.shadow = 'core/modules/google_maps/templates/img/gmap-icon-shadow.png';
    iconStandard.iconSize = new GSize(72, 38);
    iconStandard.shadowSize = new GSize(72, 38);
    iconStandard.iconAnchor = new GPoint(23, 34);
    iconStandard.infoWindowAnchor = new GPoint(23, 34);

    var customIcons = [];
    customIcons["standard_marker"] = iconStandard;

    function GMload(user_long, user_lat, user_zoom) {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl3D());
        map.addControl(new GMapTypeControl());
		map.addMapType(G_PHYSICAL_MAP);
        map.setCenter(new GLatLng(user_long, user_lat), user_zoom);
		map.setMapType(G_HYBRID_MAP);

        GDownloadUrl("google_maps/?action=generate-gm-xml", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
