diff options
| 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 | 
| commit | 6dc5fc52282013ef548ced96c9eab148eeba0748 (patch) | |
| tree | 113c7c7aac84ba10ab793c4b13197c1020514572 | |
| parent | 4417bdc2ed42a0910e4d0fcb3d42165a1cca9dd7 (diff) | |
| download | Chimè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.js | 78 | 
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();  | 
