private static double isFill(double outerArea, LinearRing exteriorRing) {
    if (outerArea < 256 * 256) {
      return NOT_FILL;
    }
    double proposedBuffer = (Math.sqrt(outerArea) - 256) / 2;
    double min = -(proposedBuffer * 0.9);
    double max = 256 + proposedBuffer * 0.9;
    int visited = 0;
    var cs = exteriorRing.getCoordinateSequence();
    int nextSide = getSide(cs.getX(0), cs.getY(0), min, max);
    for (int i = 0; i < cs.size() - 1; i++) {
      int side = nextSide;
      visited |= side;
      nextSide = getSide(cs.getX(i + 1), cs.getY(i + 1), min, max);
      if (segmentCrossesTile(side, nextSide)) {
        return NOT_FILL;
      }
    }
    return visited == ALL ? proposedBuffer : NOT_FILL;
  }
If {@ocde exteriorRing} fills the entire tile, return the number of pixels that it overhangs, otherwise -1.
planetiler-core/src/main/java/com/onthegomap/planetiler/FeatureMerge.java