geopackage-sdk/src/main/java/mil/nga/geopackage/tiles/features/FeatureTiles.java
public BoundingBox expandBoundingBox(BoundingBox webMercatorBoundingBox, BoundingBox tileWebMercatorBoundingBox) {

        // Create an expanded bounding box to handle features outside the tile
        // that overlap
        double minLongitude = TileBoundingBoxUtils.getLongitudeFromPixel(
                tileWidth, webMercatorBoundingBox, tileWebMercatorBoundingBox, 0 - widthOverlap);
        double maxLongitude = TileBoundingBoxUtils.getLongitudeFromPixel(
                tileWidth, webMercatorBoundingBox, tileWebMercatorBoundingBox, tileWidth + widthOverlap);
        double maxLatitude = TileBoundingBoxUtils.getLatitudeFromPixel(
                tileHeight, webMercatorBoundingBox, tileWebMercatorBoundingBox, 0 - heightOverlap);
        double minLatitude = TileBoundingBoxUtils.getLatitudeFromPixel(
                tileHeight, webMercatorBoundingBox, tileWebMercatorBoundingBox, tileHeight + heightOverlap);

        // Choose the most expanded longitudes and latitudes
        minLongitude = Math.min(minLongitude, webMercatorBoundingBox.getMinLongitude());
        maxLongitude = Math.max(maxLongitude, webMercatorBoundingBox.getMaxLongitude());
        minLatitude = Math.min(minLatitude, webMercatorBoundingBox.getMinLatitude());
        maxLatitude = Math.max(maxLatitude, webMercatorBoundingBox.getMaxLatitude());

        // Bound with the web mercator limits
        minLongitude = Math.max(minLongitude, -1 * ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        maxLongitude = Math.min(maxLongitude, ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        minLatitude = Math.max(minLatitude, -1 * ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        maxLatitude = Math.min(maxLatitude, ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);

        BoundingBox expandedBoundingBox = new BoundingBox(minLongitude,
                minLatitude, maxLongitude, maxLatitude);

        return expandedBoundingBox;
    }
public BoundingBox expandBoundingBox(BoundingBox webMercatorBoundingBox, BoundingBox tileWebMercatorBoundingBox) {

        // Create an expanded bounding box to handle features outside the tile
        // that overlap
        double minLongitude = TileBoundingBoxUtils.getLongitudeFromPixel(
                tileWidth, webMercatorBoundingBox, tileWebMercatorBoundingBox, 0 - widthOverlap);
        double maxLongitude = TileBoundingBoxUtils.getLongitudeFromPixel(
                tileWidth, webMercatorBoundingBox, tileWebMercatorBoundingBox, tileWidth + widthOverlap);
        double maxLatitude = TileBoundingBoxUtils.getLatitudeFromPixel(
                tileHeight, webMercatorBoundingBox, tileWebMercatorBoundingBox, 0 - heightOverlap);
        double minLatitude = TileBoundingBoxUtils.getLatitudeFromPixel(
                tileHeight, webMercatorBoundingBox, tileWebMercatorBoundingBox, tileHeight + heightOverlap);

        // Choose the most expanded longitudes and latitudes
        minLongitude = Math.min(minLongitude, webMercatorBoundingBox.getMinLongitude());
        maxLongitude = Math.max(maxLongitude, webMercatorBoundingBox.getMaxLongitude());
        minLatitude = Math.min(minLatitude, webMercatorBoundingBox.getMinLatitude());
        maxLatitude = Math.max(maxLatitude, webMercatorBoundingBox.getMaxLatitude());

        // Bound with the web mercator limits
        minLongitude = Math.max(minLongitude, -1 * ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        maxLongitude = Math.min(maxLongitude, ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        minLatitude = Math.max(minLatitude, -1 * ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);
        maxLatitude = Math.min(maxLatitude, ProjectionConstants.WEB_MERCATOR_HALF_WORLD_WIDTH);

        BoundingBox expandedBoundingBox = new BoundingBox(minLongitude,
                minLatitude, maxLongitude, maxLatitude);

        return expandedBoundingBox;
    }
public BoundingBox expandBoundingBox ( BoundingBox webMercatorBoundingBox , BoundingBox tileWebMercatorBoundingBox ) { // Create an expanded bounding box to handle features outside the tile // that overlap double minLongitude = TileBoundingBoxUtils . getLongitudeFromPixel ( tileWidth , webMercatorBoundingBox , tileWebMercatorBoundingBox , 0 - widthOverlap ) ; double maxLongitude = TileBoundingBoxUtils . getLongitudeFromPixel ( tileWidth , webMercatorBoundingBox , tileWebMercatorBoundingBox , tileWidth + widthOverlap ) ; double maxLatitude = TileBoundingBoxUtils . getLatitudeFromPixel ( tileHeight , webMercatorBoundingBox , tileWebMercatorBoundingBox , 0 - heightOverlap ) ; double minLatitude = TileBoundingBoxUtils . getLatitudeFromPixel ( tileHeight , webMercatorBoundingBox , tileWebMercatorBoundingBox , tileHeight + heightOverlap ) ; // Choose the most expanded longitudes and latitudes minLongitude = Math . min ( minLongitude , webMercatorBoundingBox . getMinLongitude ( ) ) ; maxLongitude = Math . max ( maxLongitude , webMercatorBoundingBox . getMaxLongitude ( ) ) ; minLatitude = Math . min ( minLatitude , webMercatorBoundingBox . getMinLatitude ( ) ) ; maxLatitude = Math . max ( maxLatitude , webMercatorBoundingBox . getMaxLatitude ( ) ) ; // Bound with the web mercator limits minLongitude = Math . max ( minLongitude , - 1 * ProjectionConstants . WEB_MERCATOR_HALF_WORLD_WIDTH ) ; maxLongitude = Math . min ( maxLongitude , ProjectionConstants . WEB_MERCATOR_HALF_WORLD_WIDTH ) ; minLatitude = Math . max ( minLatitude , - 1 * ProjectionConstants . WEB_MERCATOR_HALF_WORLD_WIDTH ) ; maxLatitude = Math . min ( maxLatitude , ProjectionConstants . WEB_MERCATOR_HALF_WORLD_WIDTH ) ; BoundingBox expandedBoundingBox = new BoundingBox ( minLongitude , minLatitude , maxLongitude , maxLatitude ) ; return expandedBoundingBox ; }
Create an expanded bounding box to handle features outside the tile that
overlap

@param webMercatorBoundingBox     web mercator bounding box
@param tileWebMercatorBoundingBox tile web mercator bounding box
@return bounding box
@since 3.2.0
Create an expanded bounding box to handle features outside the tile that overlap