[Pkg-javascript-commits] [leaflet-markercluster] 191/479: Add option singleMarkerMode

Jonas Smedegaard dr at jones.dk
Thu Oct 16 16:00:28 UTC 2014


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository leaflet-markercluster.

commit 068f9f9f8a08424ddb0816cb0b3afb70f6c9d690
Author: Alec Winograd <awinograd at gmail.com>
Date:   Fri Aug 31 23:06:39 2012 -0700

    Add option singleMarkerMode
    
    Defaults to false. Setting to true causes markers
    to appear as clusters with count 1. This is done
    by overriding the Marker's icon to the Group's
    iconCreateFunction.
---
 example/marker-clustering-singlemarkermode.html | 61 +++++++++++++++++++++++++
 src/MarkerCluster.js                            |  4 ++
 src/MarkerClusterGroup.js                       |  1 +
 3 files changed, 66 insertions(+)

diff --git a/example/marker-clustering-singlemarkermode.html b/example/marker-clustering-singlemarkermode.html
new file mode 100644
index 0000000..60eef82
--- /dev/null
+++ b/example/marker-clustering-singlemarkermode.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<title>Leaflet debug page</title>
+
+	<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4.4/leaflet.css" />
+	<!--[if lte IE 8]><link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.4.4/leaflet.ie.css" /><![endif]-->
+	<script src="http://cdn.leafletjs.com/leaflet-0.4.4/leaflet.js"></script>
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<link rel="stylesheet" href="screen.css" />
+
+	<link rel="stylesheet" href="../dist/MarkerCluster.css" />
+	<link rel="stylesheet" href="../dist/MarkerCluster.Default.css" />
+	<!--[if lte IE 8]><link rel="stylesheet" href="../dist/MarkerCluster.Default.ie.css" /><![endif]-->
+	<script src="../dist/leaflet.markercluster-src.js"></script>
+</head>
+<body>
+
+	<div id="map"></div>
+	<span>Click a cluster to zoom to its bounds</span>
+
+	<script type="text/javascript">
+
+		var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
+			cloudmadeAttribution = 'Map data © 2011 OpenStreetMap contributors, Imagery © 2011 CloudMade',
+			cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18, attribution: cloudmadeAttribution}),
+			latlng = new L.LatLng(50.5, 30.51);
+
+		var map = new L.Map('map', {center: latlng, zoom: 15, layers: [cloudmade]});
+
+		var markers = new L.MarkerClusterGroup({ singleMarkerMode: true});
+
+		function populate() {
+			for (var i = 0; i < 100; i++) {
+				var m = new L.Marker(getRandomLatLng(map));
+				markers.addLayer(m);
+			}
+			return false;
+		}
+		function getRandomLatLng(map) {
+			var bounds = map.getBounds(),
+				southWest = bounds.getSouthWest(),
+				northEast = bounds.getNorthEast(),
+				lngSpan = northEast.lng - southWest.lng,
+				latSpan = northEast.lat - southWest.lat;
+
+			return new L.LatLng(
+					southWest.lat + latSpan * Math.random(),
+					southWest.lng + lngSpan * Math.random());
+		}
+
+		markers.on('clusterclick', function (a) {
+			a.layer.zoomToBounds();
+		});
+
+		populate();
+		map.addLayer(markers);
+
+	</script>
+</body>
+</html>
diff --git a/src/MarkerCluster.js b/src/MarkerCluster.js
index b0fa84a..ffd7828 100644
--- a/src/MarkerCluster.js
+++ b/src/MarkerCluster.js
@@ -52,6 +52,10 @@ L.MarkerCluster = L.Marker.extend({
 			this._childClusters.push(new1);
 			this._childCount += new1._childCount;
 		} else {
+			if (this._group.options.singleMarkerMode === true) {
+				new1.options.icon = this._group.options.iconCreateFunction(1);
+			}
+
 			this._markers.push(new1);
 			this._childCount++;
 		}
diff --git a/src/MarkerClusterGroup.js b/src/MarkerClusterGroup.js
index f685d8d..1ae6542 100644
--- a/src/MarkerClusterGroup.js
+++ b/src/MarkerClusterGroup.js
@@ -12,6 +12,7 @@ L.MarkerClusterGroup = L.FeatureGroup.extend({
 		spiderfyOnMaxZoom: true,
 		showCoverageOnHover: true,
 		zoomToBoundsOnClick: true,
+		singleMarkerMode: false,
 
 		disableClusteringAtZoom: null
 	},

-- 
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