public List<RouteSubregion> loadInteresectedPoints(
      SearchRequest<RouteDataObject> req, List<RouteSubregion> list, List<RouteSubregion> toLoad)
      throws IOException {
    for (RouteSubregion rs : list) {
      if (req.intersects(rs.left, rs.top, rs.right, rs.bottom)) {
        if (rs.subregions == null) {
          codedIS.seek(rs.filePointer);
          int old = codedIS.pushLimit(rs.length);
          readRouteTree(
              rs, null, req.contains(rs.left, rs.top, rs.right, rs.bottom) ? -1 : 1, false);
          codedIS.popLimit(old);
        }
        searchRouteRegionTree(req, rs.subregions, toLoad);

        if (rs.shiftToData != 0) {
          toLoad.add(rs);
        }
      }
    }
    return toLoad;
  }