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



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

对于小型测试数据集是可以的,但不可缩放。有人对如何在谷歌地图上专门为热图显示和隐藏个人数据点有想法吗?

这是我的工作代码。

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

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))));

如果当前数据点在"收件人"和"发件人"滑块边界之外,则隐藏(即删除(数据点。

      if (currentTime >= slider_min_val && currentTime <= slider_from || currentTime >= slider_to && currentTime <= slider_max_val) {
        displayedDataPoints[i]['listOfJourneyDataPoints'][j] = "";
  }
否则,如果数据点

不在"to"和"from"滑块边界之外,并且数据点已经隐藏,则显示数据点(即,从原始数据克隆对象(。

      else {
        if (displayedDataPoints[i]['Journey'][j] === "") {
                 displayedDataPoints[i]['listOfJourneyDataPoints'][j] =
JSON.parse(JSON.stringify(originalListOfJourneys[i]['listOfJourneyDataPoints'][j]));
              }                  
            }

在地图上设置数据点。

        heatmap.setData(getAllPoints(currentTripList));
    }
 }

旅程对输出是否重要? 还是只是数据点?我想只是将所有旅程数据点合并到一个数组中。 按时间排序。然后,您只需要知道该数组中的第一个/最后一个索引,当滑块移动以从数组中取出一个切片时。如果您的滑块具有固定的粒度(小时?

最新更新