google_maps.js 1.37 KB
var map;
var mapPoints = {};
var mapBounds;
var mapDefaultIcon = new GIcon(G_DEFAULT_ICON);
   
function mapPutMarker(lat, lng, title, _icon, url) {
  var point_str = lat + ":" + lng;

  var icon = _icon == null ? mapDefaultIcon : _icon;
   
  if (mapPoints[point_str]) {
    lng += (Math.random() - 0.5) * 0.02;
    lat += (Math.random() - 0.5) * 0.02;
  } else {
    mapPoints[point_str] = true;
  }
     
  var point = new GLatLng(lat, lng);
  var options = { 'title' : title, 'icon' : icon };
  var marker = new GMarker(point, options);
  map.addOverlay(marker);

  GEvent.addListener(marker, 'click', function() {
    if (url) {
      jQuery.ajax({url: url,
        success: function(data) {
          map.openInfoWindowHtml(point, jQuery(data).html());
        }
      });
    }
  });
  mapBounds.extend(point);

  return marker;
}

window.unload = function() {
  GUnload();
};

function mapLoad(initial_zoom) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));

    new GKeyboardHandler(map);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    centerPoint = new GLatLng(-15.0, -50.1419);
    map.setCenter(centerPoint, initial_zoom);
    mapBounds = new GLatLngBounds();
  }
}

function mapCenter(latlng) {
  map.setZoom(map.getBoundsZoomLevel(mapBounds));
  map.setCenter(latlng ? latlng : mapBounds.getCenter());
}