Newer
Older
Brandon Bergren
committed
/**
* @file
* GMap Markers
* Martin Pearman's ClusterMarker version
*/
/*global ClusterMarker, 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 () {
Brandon Bergren
committed
});
obj.bind('iconsready', function () {
Brandon Bergren
committed
// Force copying the settings so we don't overwrite them.
var options = jQuery.extend(true, {}, Drupal.settings.gmap_markermanager);
Brandon Bergren
committed
if (options.clusterMarkerIcon.length) {
options.clusterMarkerIcon = Drupal.gmap.getIcon(options.clusterMarkerIcon, 0);
}
else {
delete options.clusterMarkerIcon;
}
options.borderPadding = +options.borderPadding;
options.fitMapMaxZoom = +options.fitMapMaxZoom;
options.intersectPadding = +options.intersectPadding;
obj.clusterMarker = new ClusterMarker(obj.map, options);
}
});
obj.bind('addmarker', function (marker) {
obj.clusterMarker.addMarkers([marker.marker]);
});
obj.bind('delmarker', function (marker) {
// @@@TODO: Implement this!
});
obj.bind('clearmarkers', function () {
obj.clusterMarker.removeMarkers();
});
obj.bind('markersready', function () {
obj.clusterMarker.refresh();
});