/* $Id$ */ /** * @file * GMap Markers * Jef Poskanzer's Clusterer.js API version */ /*global Clusterer, Drupal, GMarker */ // Replace to override marker creation Drupal.gmap.factory.marker = function (loc, opts) { return new GMarker(loc, opts); }; Drupal.gmap.addHandler('gmap', function (elem) { var obj = this; obj.bind('init', function () { obj.clusterer = new Clusterer(obj.map); var s = Drupal.settings.gmap_markermanager; if (s) { obj.clusterer.SetMaxVisibleMarkers(s.max_nocluster); obj.clusterer.SetMinMarkersPerCluster(s.cluster_min); obj.clusterer.SetMaxLinesPerInfoBox(s.max_lines); } }); obj.bind('iconsready', function () { var s = Drupal.settings.gmap_markermanager; if (s) { obj.clusterer.SetIcon(Drupal.gmap.getIcon(s.marker, 0)); } }); obj.bind('addmarker', function (marker) { var t = ''; if (marker.opts.title) { t = marker.opts.title; if (marker.link) { t = '<a href="' + marker.link + '">' + t + '</a>'; } } obj.clusterer.AddMarker(marker.marker, t); }); obj.bind('delmarker', function (marker) { obj.clusterer.RemoveMarker(marker.marker); }); obj.bind('clearmarkers', function () { // @@@ Maybe don't nuke ALL overlays? obj.map.clearOverlays(); }); });