[Pkg-javascript-commits] [leaflet-markercluster] 112/219: Re-built dist files to include Refresh methods
Jonas Smedegaard
dr at jones.dk
Sat May 7 09:39:21 UTC 2016
This is an automated email from the git hooks/post-receive script.
js pushed a commit to branch master
in repository leaflet-markercluster.
commit 306ef6b62d5fadb932e41e91e60452c978edc470
Author: ghybs <ghybs1 at gmail.com>
Date: Tue Oct 6 14:17:06 2015 +0400
Re-built dist files to include Refresh methods
---
dist/leaflet.markercluster-src.js | 100 ++++++++++++++++++++++++++++++++++++++
dist/leaflet.markercluster.js | 2 +-
2 files changed, 101 insertions(+), 1 deletion(-)
diff --git a/dist/leaflet.markercluster-src.js b/dist/leaflet.markercluster-src.js
index 865b739..3b341ac 100644
--- a/dist/leaflet.markercluster-src.js
+++ b/dist/leaflet.markercluster-src.js
@@ -2230,4 +2230,104 @@ L.MarkerClusterGroup.include({
});
+/**
+ * Adds 1 public method to MCG and 1 to L.Marker to facilitate changing
+ * markers' icon options and refreshing their icon and their parent clusters
+ * accordingly (case where their iconCreateFunction uses data of childMarkers
+ * to make up the cluster icon).
+ * Should cover issues #563, #561, #555, #535 and #498.
+ */
+
+
+L.MarkerClusterGroup.include({
+ /**
+ * Updates all clusters (and their icon) which are parents of the given marker(s).
+ * @param layers L.MarkerClusterGroup|L.LayerGroup|Array(L.Marker)|Map(L.Marker)|
+ * L.MarkerCluster|L.Marker (optional) list of markers (or single marker) whose parent
+ * clusters need to be updated. If not provided, retrieves all child markers of this.
+ * @returns {L.MarkerClusterGroup}
+ */
+ refreshClusters: function (layers) {
+ if (!layers) {
+ layers = this._topClusterLevel.getAllChildMarkers();
+ } else if (layers instanceof L.MarkerClusterGroup) {
+ layers = layers._topClusterLevel.getAllChildMarkers();
+ } else if (layers instanceof L.LayerGroup) {
+ layers = layers._layers;
+ } else if (layers instanceof L.MarkerCluster) {
+ layers = layers.getAllChildMarkers();
+ } else if (layers instanceof L.Marker) {
+ layers = [layers];
+ } // else: must be an Array(L.Marker)|Map(L.Marker)
+ this._flagParentsIconsNeedUpdate(layers);
+ this._refreshClustersIcons();
+
+ return this;
+ },
+
+ /**
+ * Simply flags all parent clusters of the given markers as having a "dirty" icon.
+ * @param layers Array(L.Marker)|Map(L.Marker) list of markers.
+ * @private
+ */
+ _flagParentsIconsNeedUpdate: function (layers) {
+ var parent;
+
+ // Assumes layers is an Array or an Object whose prototype is non-enumerable.
+ for (var id in layers) {
+ // Flag parent clusters' icon as "dirty", all the way up.
+ // Dumb process that flags multiple times upper parents, but still
+ // much more efficient than trying to be smart and make short lists,
+ // at least in the case of a hierarchy following a power law:
+ // http://jsperf.com/flag-nodes-in-power-hierarchy/2
+ parent = layers[id].__parent;
+ while (parent) {
+ parent._iconNeedsUpdate = true;
+ parent = parent.__parent;
+ }
+ }
+ },
+
+ /**
+ * Refreshes the icon of all "dirty" visible clusters.
+ * Non-visible "dirty" clusters will be updated when they are added to the map.
+ * @private
+ */
+ _refreshClustersIcons: function () {
+ this._featureGroup.eachLayer(function (c) {
+ if (c instanceof L.MarkerCluster && c._iconNeedsUpdate) {
+ c._updateIcon();
+ }
+ });
+ }
+});
+
+L.Marker.include({
+ /**
+ * Updates the given options in the marker's icon and refreshes the marker.
+ * @param options map object of icon options.
+ * @param directlyRefreshClusters boolean (optional) true to trigger
+ * MCG.refreshClustersOf() right away with this single marker.
+ * @returns {L.Marker}
+ */
+ refreshIconOptions: function (options, directlyRefreshClusters) {
+ var icon = this.options.icon;
+
+ L.setOptions(icon, options);
+
+ this.setIcon(icon);
+
+ // Shortcut to refresh the associated MCG clusters right away.
+ // To be used when refreshing a single marker.
+ // Otherwise, better use MCG.refreshClusters() once at the end with
+ // the list of modified markers.
+ if (directlyRefreshClusters && this.__parent) {
+ this.__parent._group.refreshClusters(this);
+ }
+
+ return this;
+ }
+});
+
+
}(window, document));
\ No newline at end of file
diff --git a/dist/leaflet.markercluster.js b/dist/leaflet.markercluster.js
index 2214daf..9aec8d8 100644
--- a/dist/leaflet.markercluster.js
+++ b/dist/leaflet.markercluster.js
@@ -3,4 +3,4 @@
https://github.com/Leaflet/Leaflet.markercluster
(c) 2012-2013, Dave Leaver, smartrak
*/
-!function(t,e,i){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222"},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(t){L.Util.setOptions [...]
\ No newline at end of file
+!function(t,e,i){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222"},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(t){L.Util.setOptions [...]
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/leaflet-markercluster.git
More information about the Pkg-javascript-commits
mailing list