带有GMaps的Heatmap.js - 显示和隐藏单个数据点

时间:2017-05-26 11:02:15

标签: javascript google-maps google-maps-api-3 heatmap

我不太使用JavaScript。我想基于UI滑块在我的热图上显示和隐藏单个数据点,并且下面的代码可以正常工作但由于每次必须遍历列表而效率低下。

适用于小型测试数据集,但不具备可扩展性。任何人都有关于如何显示和隐藏个人数据点的想法,专门针对Google地图上的热图?

这是我的工作代码。

当滑块移动时,循环浏览各个数据点。

for (var i = 0; i < listOfJourneys.length; i++) {

   for (var j = 0; j < listOfJourneys[i]['listOfJourneyDataPoints'].length; j++) {

获取当前旅程数据点的时间

      var journeyTime = listOfJourneys[i]['listOfJourneyDataPoints'][j]['Seconds'];

      var currentTime = new Date(parseInt(journeyTime.substring(6, (time.journeyTime -2))));

如果当前数据指向'to'和'from'滑块边界之外,则隐藏(即删除)数据点。

      if (currentTime >= slider_min_val && currentTime <= slider_from || currentTime >= slider_to && currentTime <= slider_max_val) {

        displayedDataPoints[i]['listOfJourneyDataPoints'][j] = "";
  }

否则,如果数据点不在'to'和'from'滑块边界之外,并且datapoint已被隐藏,则显示数据点(即,从原始数据中克隆对象。)

      else {

        if (displayedDataPoints[i]['Journey'][j] === "") {

                 displayedDataPoints[i]['listOfJourneyDataPoints'][j] =
JSON.parse(JSON.stringify(originalListOfJourneys[i]['listOfJourneyDataPoints'][j]));

              }                  

            }

在地图上设置数据点。

        heatmap.setData(getAllPoints(currentTripList));

    }

 }

1 个答案:

答案 0 :(得分:0)

旅程中的旅程是否重要?或者只是数据点? 我想把所有的旅程数据点组合成一个数组。按时间排序。 然后,当滑块移动以从阵列中取出切片时,您只需要知道该数组中的第一个/最后一个索引。 如果滑块具有固定的粒度(小时?),则事件可以预先计算这些索引