У меня есть карта на буклете, в которой отображаются маркеры в зависимости от того, как я отфильтровал свои графики DC.JS.
Мои данные фильтруются, когда я не использую функцию getbounds
.Я добавил функцию для увеличения выбранных объектов, и теперь фильтрация карт не работает.
Как я могу это исправить?
// Called when dc.js is filtered (typically from user click interaction)
var onFilt = function(chart, filter) {
updateMap(locations.top(Infinity));
};
// Updates the displayed map markers to reflect the crossfilter dimension passed in
var updateMap = function(locs) {
//clear the existing markers from the map
var minlat = 200, minlon = 200, maxlat = -200, maxlon = -200;
locs.forEach( function(d, i) {
if (d.latitude!=null && d.latitude!=undefined) {
// add a Leaflet marker for the lat lng and insert the application's stated purpose in popup\
// find corners
if (minlat > d.latitude) minlat = d.latitude;
if (minlon > d.longitude) minlon = d.longitude;
if (maxlat < d.latitude) maxlat = d.latitude;
if (maxlon < d.longitude) maxlon = d.longitude;
L.marker([d.latitude, d.longitude]);
}
});
c1 = L.latLng(minlat, minlon);
c2 = L.latLng(maxlat, maxlon);
// fit bounds
map.fitBounds(L.latLngBounds(c1, c2));
// correct zoom to fit markers
setTimeout(function() {
map.setZoom(map.getZoom() - 1);
}, 500);
};
function filtr() {
updateMap(filter);
};
markersLayer.clearLayers();
clusterLayer.clearLayers();
пробовал также:
function filtr() {
updateMap(locations.top(Infinity));
};
Мой пример вы можете найти здесь: http://htmlpreview.github.io/?https://github.com/renauld94/dashboard/blob/master/index