use of rtree.Pack in project OsmAnd-tools by osmandapp.
the class AbstractIndexPartCreator method packRtreeFile.
public static RTree packRtreeFile(RTree tree, String nonPackFileName, String packFileName) throws IOException {
try {
// $NON-NLS-1$
assert rtree.Node.MAX < 50 : "It is better for search performance";
tree.flush();
File file = new File(packFileName);
if (file.exists()) {
file.delete();
}
long rootIndex = tree.getFileHdr().getRootIndex();
if (!nodeIsLastSubTree(tree, rootIndex)) {
// there is a bug for small files in packing method
new Pack().packTree(tree, packFileName);
tree.getFileHdr().getFile().close();
file = new File(nonPackFileName);
file.delete();
return new RTree(packFileName);
}
} catch (RTreeException e) {
// $NON-NLS-1$
log.error("Error flushing", e);
throw new IOException(e);
}
return tree;
}
Aggregations