diff options
| -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(); |
