@Override
public double getBinOverlap (TileIndex tile, BinIndex bin, Rectangle2D area) {
Rectangle2D binBounds = getBinBounds(tile, bin);
double minx = (area.getMinX()-binBounds.getMinX())/binBounds.getWidth();
double maxx = (area.getMaxX()-binBounds.getMinX())/binBounds.getWidth();
double miny = (area.getMinY()-binBounds.getMinY())/binBounds.getHeight();
double maxy = (area.getMaxY()-binBounds.getMinY())/binBounds.getHeight();
minx = Math.min(Math.max(minx, 0.0), 1.0);
maxx = Math.min(Math.max(maxx, 0.0), 1.0);
miny = Math.min(Math.max(miny, 0.0), 1.0);
maxy = Math.min(Math.max(maxy, 0.0), 1.0);
return Math.abs((maxx-minx) * (maxy-miny));
}