Обновление маркеров карты с помощью функции Leaflet getbounds - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть карта на буклете, в которой отображаются маркеры в зависимости от того, как я отфильтровал свои графики 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...