Morning Michael:
The Shapefile datastore has a module maintainer ... Jesse Eichar :-) If
you want to find this kind of thing
out in the future look on the wiki under "Module Matrix", or in the
source code in the pom.xml file.
If you want you can make a bug report on this issue and attach your fix
(that way we wont forget about it).
Jody
[EMAIL PROTECTED] wrote:
> Hello,
>
> I am quite new in the geotools usergroup. First of all I want to say that
> geotools is a really nice library with very interesting and useful functions.
>
> In my actual project i worked with the indexed shapefile datastore.
>
> In my tests the reading of point shapefile data seemed to be quite slow when
> using the quadtree-index. When I searched for a solution I debugged the class
> "ShapeFileIndexer.java". I found out that the BoundingBox of the of the
> points was wrong.
> Maybe someone wants to check out if it is really a bug or if the shapefiles
> itself make the problems. They where generated with a software called FME.
>
> The following workaround in the ShapeFileIndexer.java solved my problems
> (Look for the comment "Workaround":
>
> ///////////////////////////////////////////////////////////////////////////////////////////////////////
> private int buildQuadTree(ShapefileReader reader, File file, boolean
> verbose)
> throws IOException, StoreException {
> byte order = 0;
>
> if ((this.byteOrder == null) ||
> this.byteOrder.equalsIgnoreCase("NM")) {
> order = IndexHeader.NEW_MSB_ORDER;
> } else if (this.byteOrder.equalsIgnoreCase("NL")) {
> order = IndexHeader.NEW_LSB_ORDER;
> } else {
> throw new StoreException("Asked byte order '" + this.byteOrder
> + "' must be 'NL' or 'NM'!");
> }
>
> String ext = this.fileName.substring(this.fileName.lastIndexOf('.'));
>
> String idxFileName = this.fileName.substring(0,
> this.fileName.length() - 4)
> + (ext.equals(".shp") ? ".shx" : ".SHX");
>
> FileInputStream fisIdx = new FileInputStream(idxFileName);
> FileChannel channelIdx = fisIdx.getChannel();
> IndexFile shpIndex = new IndexFile(channelIdx);
> QuadTree tree=null;
> int cnt = 0;
> try{
> int numRecs = shpIndex.getRecordCount();
> ShapefileHeader header = reader.getHeader();
> Envelope bounds = new Envelope(header.minX(), header.maxX(),
> header.minY(), header.maxY());
>
> tree = new QuadTree(numRecs, bounds, shpIndex);
>
> Record rec = null;
>
> while (reader.hasNext()) {
> rec = reader.nextRecord();
>
> /////Workarround
> ////because of wrong boundingbox at points
> if(header.getShapeType()==ShapeType.POINT){
> rec.maxX=rec.minX;
> rec.maxY=rec.minY;
> }
>
> tree.insert(cnt++,
> new Envelope(rec.minX, rec.maxX, rec.minY, rec.maxY));
>
> if (verbose && ((cnt % 500) == 0)) {
> System.out.print('.');
> }
> }
> }finally{
> channelIdx.close();
> fisIdx.close();
> shpIndex.close();
> }
> FileSystemIndexStore store = new FileSystemIndexStore(file, order);
> store.store(tree);
>
> return cnt;
> }
> ///////////////////////////////////////////////////////////////////////////////////////////
> --
> RIWA GmbH
> Gesellschaft für Geoinformationen
> Sitz der Gesellschaft : Zwingerstrasse 1, 87435 Kempten (Allgäu)
> Registergericht : Amtsgericht Kempten, HRB 6480
> Geschäftsführer : Dipl.-Ing. Günter Kraus
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users