diff --git includes/behaviors/js/openlayers_behavior_cluster.js includes/behaviors/js/openlayers_behavior_cluster.js index e451f41..e966ce8 100644 --- includes/behaviors/js/openlayers_behavior_cluster.js +++ includes/behaviors/js/openlayers_behavior_cluster.js @@ -4,35 +4,39 @@ * OpenLayers Behavior implementation for clustering. */ +(function ($) { + /** * OpenLayers Cluster Behavior */ -Drupal.behaviors.openlayers_cluster = function(context) { - var data = $(context).data('openlayers'); - if (data && data.map.behaviors.openlayers_behavior_cluster) { - var options = data.map.behaviors.openlayers_behavior_cluster; - var map = data.openlayers; - var distance = parseInt(options.distance, 10); - var threshold = parseInt(options.threshold, 10); - var layers = []; - for (var i in options.clusterlayer) { - var selectedLayer = map.getLayersBy('drupalID', options.clusterlayer[i]); - if (typeof selectedLayer[0] != 'undefined') { - layers.push(selectedLayer[0]); +Drupal.behaviors.openlayers_cluster = { + attach: function(context) { + var data = $(context).data('openlayers'); + if (data && data.map.behaviors.openlayers_behavior_cluster) { + var options = data.map.behaviors.openlayers_behavior_cluster; + var map = data.openlayers; + var distance = parseInt(options.distance, 10); + var threshold = parseInt(options.threshold, 10); + var layers = []; + for (var i in options.clusterlayer) { + var selectedLayer = map.getLayersBy('drupalID', options.clusterlayer[i]); + if (typeof selectedLayer[0] != 'undefined') { + layers.push(selectedLayer[0]); + } } - } - // Go through chosen layers - for (var i in layers) { - var layer = layers[i]; - // Ensure vector layer - if (layer.CLASS_NAME == 'OpenLayers.Layer.Vector') { - var cluster = new OpenLayers.Strategy.Cluster(options); - layer.addOptions({ 'strategies': [cluster] }); - cluster.setLayer(layer); - cluster.features = layer.features.slice(); - cluster.activate(); - cluster.cluster(); + // Go through chosen layers + for (var i in layers) { + var layer = layers[i]; + // Ensure vector layer + if (layer.CLASS_NAME == 'OpenLayers.Layer.Vector') { + var cluster = new OpenLayers.Strategy.Cluster(options); + layer.addOptions({ 'strategies': [cluster] }); + cluster.setLayer(layer); + cluster.features = layer.features.slice(); + cluster.activate(); + cluster.cluster(); + } } } } @@ -63,3 +67,5 @@ Drupal.theme.openlayersPopup = function(feature) { return Drupal.theme.prototype.openlayersPopup(feature); } }; + +})(jQuery);