summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 15:30:01 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 15:32:01 +0200
commit6dc5fc52282013ef548ced96c9eab148eeba0748 (patch)
tree113c7c7aac84ba10ab793c4b13197c1020514572
parent4417bdc2ed42a0910e4d0fcb3d42165a1cca9dd7 (diff)
downloadChimère-6dc5fc52282013ef548ced96c9eab148eeba0748.tar.bz2
Chimère-6dc5fc52282013ef548ced96c9eab148eeba0748.zip
Work on enable clustering for non clustering map
-rw-r--r--chimere/static/chimere/js/jquery.chimere-leaflet.js78
1 files changed, 50 insertions, 28 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere-leaflet.js b/chimere/static/chimere/js/jquery.chimere-leaflet.js
index 47bcaf8..73b86a2 100644
--- a/chimere/static/chimere/js/jquery.chimere-leaflet.js
+++ b/chimere/static/chimere/js/jquery.chimere-leaflet.js
@@ -190,11 +190,19 @@ See the file COPYING for details.
}
});
} else {
+ if (settings.enable_clustering){
+ settings.layerClusters = new L.MarkerClusterGroup({
+ showCoverageOnHover: false});
+ }
settings.layerMarkers = L.geoJson(null, {
onEachFeature: function (feature, layer) {
- layer.bindPopup(feature.properties.name);
+ if (feature.properties && feature.properties.name) {
+ layer.bindPopup(feature.properties.name);
+ }
},
pointToLayer: function (feature, latlng) {
+ var marker = null;
+
if (feature.properties.weight){
var fill_color = "#ff7800";
if (feature.properties.colors){
@@ -213,34 +221,41 @@ See the file COPYING for details.
opacity: 1,
fillOpacity: 0.8
};
- return L.circleMarker(latlng, geojsonMarkerOptions);
- }
- var icon_path = MEDIA_URL + feature.properties.icon_path;
- if (!settings.icons.hasOwnProperty(icon_path)){
- var icon_offset = null;
- if (feature.properties.icon_offset){
- icon_offset = feature.properties.icon_offset;
- } else {
- icon_offset = [feature.properties.icon_width/2,
- feature.properties.icon_height];
- }
- var popup_anchor = null;
- if (feature.properties.popup_anchor){
- popup_anchor = feature.properties.popup_anchor;
- } else {
- popup_anchor = [0,
- -feature.properties.icon_height];
+ marker = L.circleMarker(latlng, geojsonMarkerOptions);
+ } else {
+ var icon_path = MEDIA_URL + feature.properties.icon_path;
+ if (!settings.icons.hasOwnProperty(icon_path)){
+ var icon_offset = null;
+ if (feature.properties.icon_offset){
+ icon_offset = feature.properties.icon_offset;
+ } else {
+ icon_offset = [feature.properties.icon_width/2,
+ feature.properties.icon_height];
+ }
+ var popup_anchor = null;
+ if (feature.properties.popup_anchor){
+ popup_anchor = feature.properties.popup_anchor;
+ } else {
+ popup_anchor = [0,
+ -feature.properties.icon_height];
+ }
+ settings.icons[icon_path] = L.icon({
+ iconUrl: icon_path,
+ iconSize: [feature.properties.icon_width,
+ feature.properties.icon_height],
+ iconAnchor: icon_offset,
+ popupAnchor: popup_anchor
+ });
}
- settings.icons[icon_path] = L.icon({
- iconUrl: icon_path,
- iconSize: [feature.properties.icon_width,
- feature.properties.icon_height],
- iconAnchor: icon_offset,
- popupAnchor: popup_anchor
- });
- }
- return L.marker(latlng,
- {icon: settings.icons[icon_path]});
+ marker = L.marker(latlng,
+ {icon: settings.icons[icon_path]});
+ }/*
+ if (settings.enable_clustering){
+ settings.layerClusters.addLayer(marker);
+ return settings.layerClusters;
+ } else {*/
+ return marker;
+ //}
}
}).addTo(map);
}
@@ -419,6 +434,10 @@ See the file COPYING for details.
settings.map.removeLayer(settings.layerVectors);
settings.layerMarkers.clearLayers();
settings.layerVectors.clearLayers();
+ if (settings.enable_clustering && !settings.clustering_map){
+ settings.map.removeLayer(settings.layerClusters);
+ settings.layerClusters.clearLayers();
+ }
if (settings.clustering_map){
for (var i = 0; i < data.features.length; i++) {
var feature = data.features[i];
@@ -463,6 +482,9 @@ See the file COPYING for details.
}
settings.map.addLayer(settings.layerMarkers);
settings.map.addLayer(settings.layerVectors);
+ if (settings.enable_clustering && !settings.clustering_map){
+ settings.map.addLayer(settings.layerClusters);
+ }
},
error: function (data, textStatus, errorThrown) {
settings.layerMarkers.clearLayers();