Hello all, Just an update of the progress I made.
1. Switched to org.apache.sis.storage.shapefile for java/tests 2. Truncated the test shapefiles and checked them in and deleted the original larger shapefiles. 3. Switched to using NIO The code is here https://github.com/tlpinney/shapefile-api Currently I have it set up to MMAP the files. I am still using Apache EndianUtils for reading Little Endian values. I am not sure of the advantage of calling foo.order(ByteOrder.LITTLE_ENDIAN) instead of using the EndianUtils, but I will extend the MappedByteBuffer so the api is easier to use when switching between Little Endian and Big Endian. Either method of reading Little Endian values can be swapped out without changing the api in the future. Maybe something like? foo.getLEInt() foo.getLELong() for dealing with Little Endian values? Thanks, Travis On Mon, Jun 3, 2013 at 2:17 PM, Adam Estrada <[email protected]> wrote: > Thanks Travis! > > > On Mon, Jun 3, 2013 at 10:04 AM, Travis L Pinney <[email protected] > >wrote: > > > Thanks for the suggestions. > > > > I will update the packaging to be consistent with apache-sis and use > > ReviewBoard for the patch. > > > > For the tests, I will regenerate the shapefiles with a subset of the data > > to keep them at a reasonable size. This will allow testing for all types > of > > data (Polyline, Shapefile, and Point for now). I agree it is not optimal > > for basic tests to depend on large files. > > > > Using java.nio will be better than using RandomAccessFile. I will look > into > > getting that switched over. > > > > > > Thanks! > > Travis > > > > > > On Mon, Jun 3, 2013 at 4:37 AM, Martin Desruisseaux < > > [email protected]> wrote: > > > > > Hello Travis > > > > > > Thanks for this work! I had a quick look at the code on GitHub, and I > > > would like to do the following suggestions: > > > > > > * > > > > > > About the test data, the ANC90Ply_4326.dbf files could easily be > > > committed on SVN since it is only 19 kb. However the other test > > > files (SignedBikeRoute_4326 and ABRALicenseePt_4326) are 2.4 and 3.1 > > > Mb big. We have not yet established a mechanism for such large test > > > files. We may need to setup some FTP server for large test files, > > > and design the tests in such a way that those tests are optional. > > > Maybe for now it would be better to commit only ANC90Ply_4326.dbf... > > > > > > * > > > > > > The ShapeFile class uses java.io.RandomAccessFile for reading data, > > > followed by calls to org.apache.commons.io.**EndianUtils for > > > converting bytes to double (or other primitive types) while taking > > > endianness in account. Would it be possible to use > > > java.nio.channels.**ReadableChannel with java.nio.ByteBuffer > instead? > > > It would take care of the above for you, potentially much more > > > efficiently. > > > > > > > > > Thanks again! > > > > > > Martin > > > > > > > > > > > > Le 03/06/13 01:47, Travis L Pinney a écrit : > > > > > > Hello everyone, > > >> > > >> I started working on a very rough prototype that can read in > Shapefiles. > > >> > > >> https://github.com/tlpinney/**shapefile-api< > > https://github.com/tlpinney/shapefile-api> > > >> > > >> In order to write a patch to submit, where would this component reside > > in > > >> the Apache SIS project? > > >> > > >> > > >> Thanks, > > >> Travis > > >> > > > > > > > > >
