bugfix issue 153
git-svn-id: https://osmand.googlecode.com/svn/trunk@659 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
parent
b7a3a09b32
commit
b68a330e8f
4 changed files with 23 additions and 14 deletions
|
@ -18,7 +18,7 @@ public class BinaryInspector {
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
args = new String[]{"E:\\Information\\OSM maps\\osmand\\Luxembourg.map.pbf"};
|
args = new String[]{"E:\\Information\\OSM maps\\osmand\\Luxembourg.map.pbf"};
|
||||||
args = new String[]{"E:\\Information\\OSM maps\\osmand\\Minsk.map.pbf"};
|
// args = new String[]{"E:\\Information\\OSM maps\\osmand\\Minsk.map.pbf"};
|
||||||
// args = new String[]{"E:\\Information\\OSM maps\\osmand\\Belarus_4.map.pbf"};
|
// args = new String[]{"E:\\Information\\OSM maps\\osmand\\Belarus_4.map.pbf"};
|
||||||
// args = new String[]{"E:\\Information\\OSM maps\\osmand\\Netherlands.map.pbf"};
|
// args = new String[]{"E:\\Information\\OSM maps\\osmand\\Netherlands.map.pbf"};
|
||||||
// args = new String[]{"E:\\Information\\OSM maps\\osm_map\\Netherlands\\Netherlands_trans.map.pbf"};
|
// args = new String[]{"E:\\Information\\OSM maps\\osm_map\\Netherlands\\Netherlands_trans.map.pbf"};
|
||||||
|
@ -74,7 +74,9 @@ public class BinaryInspector {
|
||||||
System.out.println(MessageFormat.format("{0}. {1} data {3} - {2} bytes", i, partname, p.getLength(), name));
|
System.out.println(MessageFormat.format("{0}. {1} data {3} - {2} bytes", i, partname, p.getLength(), name));
|
||||||
if(p instanceof TransportIndex){
|
if(p instanceof TransportIndex){
|
||||||
TransportIndex ti = ((TransportIndex) p);
|
TransportIndex ti = ((TransportIndex) p);
|
||||||
System.out.println("\t Bounds " + formatBounds(ti.getLeft(), ti.getRight(), ti.getTop(), ti.getBottom()));
|
int sh = (31 - BinaryMapIndexReader.TRANSPORT_STOP_ZOOM);
|
||||||
|
System.out.println("\t Bounds " + formatBounds(ti.getLeft() << sh, ti.getRight() << sh,
|
||||||
|
ti.getTop() << sh, ti.getBottom() << sh));
|
||||||
} else if(p instanceof MapIndex){
|
} else if(p instanceof MapIndex){
|
||||||
MapIndex m = ((MapIndex) p);
|
MapIndex m = ((MapIndex) p);
|
||||||
for(MapRoot mi : m.getRoots()){
|
for(MapRoot mi : m.getRoots()){
|
||||||
|
|
|
@ -31,7 +31,7 @@ import com.google.protobuf.WireFormat;
|
||||||
|
|
||||||
public class BinaryMapIndexReader {
|
public class BinaryMapIndexReader {
|
||||||
|
|
||||||
private final static int TRANSPORT_STOP_ZOOM = 24;
|
public final static int TRANSPORT_STOP_ZOOM = 24;
|
||||||
|
|
||||||
private final RandomAccessFile raf;
|
private final RandomAccessFile raf;
|
||||||
private int version;
|
private int version;
|
||||||
|
|
|
@ -1925,7 +1925,7 @@ public class IndexCreator {
|
||||||
while(rset.next()){
|
while(rset.next()){
|
||||||
Long route = transportRoutes.get(rset.getLong(1));
|
Long route = transportRoutes.get(rset.getLong(1));
|
||||||
if(route == null){
|
if(route == null){
|
||||||
log.error("Something goes wrong with route id = " + rset.getLong(1));
|
log.error("Something goes wrong with transport route id = " + rset.getLong(1));
|
||||||
} else {
|
} else {
|
||||||
routes.add(route);
|
routes.add(route);
|
||||||
}
|
}
|
||||||
|
@ -1933,7 +1933,7 @@ public class IndexCreator {
|
||||||
rset.close();
|
rset.close();
|
||||||
writer.writeTransportStop(id, x24, y24, name, nameEn, stringTable, routes);
|
writer.writeTransportStop(id, x24, y24, name, nameEn, stringTable, routes);
|
||||||
} else {
|
} else {
|
||||||
log.error("Something goes wrong with id = " + id);
|
log.error("Something goes wrong with transport id = " + id);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
long ptr = ((NonLeafElement) e[i]).getPtr();
|
long ptr = ((NonLeafElement) e[i]).getPtr();
|
||||||
|
@ -2502,18 +2502,14 @@ public class IndexCreator {
|
||||||
creator.setIndexTransport(true);
|
creator.setIndexTransport(true);
|
||||||
|
|
||||||
creator.recreateOnlyBinaryFile = false;
|
creator.recreateOnlyBinaryFile = false;
|
||||||
creator.deleteDatabaseIndexes = true;
|
creator.deleteDatabaseIndexes = false;
|
||||||
|
|
||||||
creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/minsk.tmp.odb"));
|
// creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/minsk.tmp.odb"));
|
||||||
creator.generateIndexes(new File("e:/Information/OSM maps/belarus osm/minsk.osm"), new ConsoleProgressImplementation(3), null);
|
// creator.generateIndexes(new File("e:/Information/OSM maps/belarus osm/minsk.osm"), new ConsoleProgressImplementation(3), null);
|
||||||
|
|
||||||
// creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/belarus_nodes.tmp.odb"));
|
// creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/belarus_nodes.tmp.odb"));
|
||||||
// creator.generateIndexes(new File("e:/Information/OSM maps/belarus osm/belarus.osm.bz2"), new ConsoleProgressImplementation(3), null);
|
// creator.generateIndexes(new File("e:/Information/OSM maps/belarus osm/belarus.osm.bz2"), new ConsoleProgressImplementation(3), null);
|
||||||
|
|
||||||
|
|
||||||
// creator.generateIndexes(new File("e:/Information/OSM maps/belarus osm/forest.osm"), new ConsoleProgressImplementation(3), null);
|
|
||||||
|
|
||||||
|
|
||||||
// creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/ams.tmp.odb"));
|
// creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/ams.tmp.odb"));
|
||||||
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/ams_part_map.osm"), new ConsoleProgressImplementation(3), null);
|
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/ams_part_map.osm"), new ConsoleProgressImplementation(3), null);
|
||||||
|
|
||||||
|
@ -2525,7 +2521,8 @@ public class IndexCreator {
|
||||||
|
|
||||||
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/forest_complex.osm"), new ConsoleProgressImplementation(25), null);
|
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/forest_complex.osm"), new ConsoleProgressImplementation(25), null);
|
||||||
|
|
||||||
// creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/luxembourg.osm.pbf"), new ConsoleProgressImplementation(25), null);
|
creator.setNodesDBFile(new File("e:/Information/OSM maps/osmand/luxembourg.tmp.odb"));
|
||||||
|
creator.generateIndexes(new File("e:/Information/OSM maps/osm_map/luxembourg.osm.pbf"), new ConsoleProgressImplementation(15), null);
|
||||||
|
|
||||||
System.out.println("WHOLE GENERATION TIME : " + (System.currentTimeMillis() - time));
|
System.out.println("WHOLE GENERATION TIME : " + (System.currentTimeMillis() - time));
|
||||||
System.out.println("COORDINATES_SIZE " + BinaryMapIndexWriter.COORDINATES_SIZE + " count " + BinaryMapIndexWriter.COORDINATES_COUNT);
|
System.out.println("COORDINATES_SIZE " + BinaryMapIndexWriter.COORDINATES_SIZE + " count " + BinaryMapIndexWriter.COORDINATES_COUNT);
|
||||||
|
|
|
@ -380,11 +380,21 @@ public class CachedNodes
|
||||||
buffHeader.reset();
|
buffHeader.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Map<String, Integer> fileNamesMap = new LinkedHashMap<String, Integer>();
|
||||||
|
|
||||||
int calKey(String fileName,int idx)
|
int calKey(String fileName,int idx)
|
||||||
{
|
{
|
||||||
if(fileName != null) {
|
if(fileName != null) {
|
||||||
|
Integer i = fileNamesMap.get(fileName);
|
||||||
|
if(i == null){
|
||||||
|
if(fileNamesMap.size() > 31){
|
||||||
|
throw new ArrayIndexOutOfBoundsException();
|
||||||
|
}
|
||||||
|
fileNamesMap.put(fileName, fileNamesMap.size());
|
||||||
|
i = fileNamesMap.get(fileName);
|
||||||
|
}
|
||||||
// System.out.println(idx + " " + fileName + " " + ((idx << 5)+ fileName.toLowerCase().hashCode() % 32));
|
// System.out.println(idx + " " + fileName + " " + ((idx << 5)+ fileName.toLowerCase().hashCode() % 32));
|
||||||
return ((idx << 5)+ fileName.toLowerCase().hashCode() % 32);
|
return ((idx << 5)+ i);
|
||||||
} else{
|
} else{
|
||||||
System.out.println("CachedNodes.calKey: fileName null");
|
System.out.println("CachedNodes.calKey: fileName null");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue