docs: public boolean intersectsArea(LatLong[][] latLongs) {
          if (latLongs.length == 0 || latLongs[0].length == 0) {
              return false;
          }
          for (LatLong[] outer : latLongs) {
              for (LatLong latLong : outer) {
                  if (this.contains(latLong)) {
                      // if any of the points is inside the bbox return early
                      return true;
                  }
              }
          }
  
          // no fast solution, so accumulate boundary points
          double tmpMinLat = latLongs[0][0].latitude;
          double tmpMinLon = latLongs[0][0].longitude;
          double tmpMaxLat = latLongs[0][0].latitude;
          double tmpMaxLon = latLongs[0][0].longitude;
  
          for (LatLong[] outer : latLongs) {
              for (LatLong latLong : outer) {
                  tmpMinLat = Math.min(tmpMinLat, latLong.latitude);
                  tmpMaxLat = Math.max(tmpMaxLat, latLong.latitude);
                  tmpMinLon = Math.min(tmpMinLon, latLong.longitude);
                  tmpMaxLon = Math.max(tmpMaxLon, latLong.longitude);
              }
          }
          return this.intersects(new BoundingBox(tmpMinLat, tmpMinLon, tmpMaxLat, tmpMaxLon));
      }