Thanks Jared and Michael for your sample code. I'll make use of it. The Sunburned Surveyor
On Wed, Jan 28, 2009 at 7:12 AM, Jared Erickson <[email protected]> wrote: > Here is some code that I use to subdivide envelopes. > > /** > * Create a grid of Envelopes for an Envelope with a number of rows and > columns > * @param envelope The Envelope > * @param numberOfRows The number of rows > * @param numberOfColumns The number of columns > * @return An array of Envelopes > */ > public Envelope[] createGrid(Envelope envelope, int numberOfRows, int > numberOfColumns) { > > // Extract the origin, width, and height > double minX = envelope.getMinX(); > double minY = envelope.getMinY(); > double width = envelope.getWidth(); > double height = envelope.getHeight(); > > // Calculate the cell width and height > double cellWidth = width / numberOfColumns; > double cellHeight = height / numberOfRows; > > // Calculate the number of cells (Envelopes) > int numberOfCells = numberOfRows * numberOfColumns; > > // Create the Envelope array > Envelope[] envs = new Envelope[numberOfCells]; > > // Fill the Envelope array > int i = 0; > for (int r = 0; r < numberOfRows; r++) { > for (int c = 0; c < numberOfColumns; c++) { > double x = minX + (r * cellWidth); > double y = minY + (c * cellHeight); > envs[i] = new Envelope(x, x + cellWidth, y, y + cellHeight); > i++; > } > } > > return envs; > } > > Jared Erickson > >>>> Sunburned Surveyor <[email protected]> 1/27/2009 4:49 PM >>> > Does anyone know of (or have) code that will take an envelope and > break it up into smaller envelopes of equal size? (I didn't see a > method in the Envelope class that performed this operation.) > > Here is my use case: > > I've got some shapefiles that are too large to work with in OpenJUMP. > I want to split one of these large shapefiles into a smaller shapefile > that I can work with. To do this I thought I could access the envelope > that covers all features in the Shapefile. I'd split this into a > number of smaller envelopes of equal size. I'll then use code from > deegree/Geotools to iteratively access each feature in the Shapefile > on disk. I'll determine which envelope each feature fits in, and I'll > stick that feature in a new Shapefile. > > Thanks for any thoughts. I'll whip up some new code if no one has > existing code to do the trick. > > The Sunburned Surveyor > _______________________________________________ > jts-devel mailing list > [email protected] > http://lists.refractions.net/mailman/listinfo/jts-devel > > _______________________________________________ > jts-devel mailing list > [email protected] > http://lists.refractions.net/mailman/listinfo/jts-devel > _______________________________________________ jts-devel mailing list [email protected] http://lists.refractions.net/mailman/listinfo/jts-devel
