docs: @Override
      public Collection<PointOfInterest> findInRect(BoundingBox bb, PoiCategoryFilter filter,
                                                    List<Tag> patterns, int limit) {
          // Clear previous results
          this.ret.clear();
  
          // Query
          Cursor cursor = null;
          try {
              int pSize = patterns == null ? 0 : patterns.size();
              String sql = AbstractPoiPersistenceManager.getSQLSelectString(filter, pSize, getPoiFileInfo().version);
  
              List<String> selectionArgs = new ArrayList<>();
              selectionArgs.add(String.valueOf(bb.maxLatitude));
              selectionArgs.add(String.valueOf(bb.maxLongitude));
              selectionArgs.add(String.valueOf(bb.minLatitude));
              selectionArgs.add(String.valueOf(bb.minLongitude));
              if (pSize > 0) {
                  for (Tag tag : patterns) {
                      if (tag == null) {
                          continue;
                      }
                      selectionArgs.add("%"
                              + (tag.key.equals("*") ? "" : (tag.key + "="))
                              + tag.value + "%");
                  }
              }
              selectionArgs.add(String.valueOf(limit));
  
              cursor = this.db.rawQuery(sql, selectionArgs.toArray(new String[selectionArgs.size()]));
              while (cursor.moveToNext()) {
                  long id = cursor.getLong(0);
                  double lat = cursor.getDouble(1);
                  double lon = cursor.getDouble(2);
  
                  this.poi = new PointOfInterest(id, lat, lon, findDataByID(id), findCategoriesByID(id));
                  this.ret.add(this.poi);
              }
          } catch (Exception e) {
              LOGGER.log(Level.SEVERE, e.getMessage(), e);
          } finally {
              try {
                  if (cursor != null) {
                      cursor.close();
                  }
              } catch (Exception e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
  
          return this.ret;
      }