void prepare() { final EdgeIterator allIter = graph.getAllEdges(); try { while (allIter.next()) { int nodeA = allIter.getBaseNode(); int nodeB = allIter.getAdjNode(); double lat1 = nodeAccess.getLatitude(nodeA); double lon1 = nodeAccess.getLongitude(nodeA); double lat2; double lon2; PointList points = allIter.fetchWayGeometry(0); int len = points.getSize(); for (int i = 0; i < len; i++) { lat2 = points.getLatitude(i); lon2 = points.getLongitude(i); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); lat1 = lat2; lon1 = lon2; } lat2 = nodeAccess.getLatitude(nodeB); lon2 = nodeAccess.getLongitude(nodeB); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); } } catch (Exception ex) { logger.error("Problem! base:" + allIter.getBaseNode() + ", adj:" + allIter.getAdjNode() + ", edge:" + allIter.getEdge(), ex); } }
void prepare() { final EdgeIterator allIter = graph.getAllEdges(); try { while (allIter.next()) { int nodeA = allIter.getBaseNode(); int nodeB = allIter.getAdjNode(); double lat1 = nodeAccess.getLatitude(nodeA); double lon1 = nodeAccess.getLongitude(nodeA); double lat2; double lon2; PointList points = allIter.fetchWayGeometry(0); int len = points.getSize(); for (int i = 0; i < len; i++) { lat2 = points.getLatitude(i); lon2 = points.getLongitude(i); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); lat1 = lat2; lon1 = lon2; } lat2 = nodeAccess.getLatitude(nodeB); lon2 = nodeAccess.getLongitude(nodeB); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); } } catch (Exception ex) { logger.error("Problem! base:" + allIter.getBaseNode() + ", adj:" + allIter.getAdjNode() + ", edge:" + allIter.getEdge(), ex); } }
void prepare() { final EdgeIterator allIter = graph.getAllEdges(); try { while (allIter.next()) { int nodeA = allIter.getBaseNode(); int nodeB = allIter.getAdjNode(); double lat1 = nodeAccess.getLatitude(nodeA); double lon1 = nodeAccess.getLongitude(nodeA); double lat2; double lon2; PointList points = allIter.fetchWayGeometry(0); int len = points.getSize(); for (int i = 0; i < len; i++) { lat2 = points.getLatitude(i); lon2 = points.getLongitude(i); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); lat1 = lat2; lon1 = lon2; } lat2 = nodeAccess.getLatitude(nodeB); lon2 = nodeAccess.getLongitude(nodeB); addNode(nodeA, nodeB, lat1, lon1, lat2, lon2); } } catch (Exception ex) { logger.error("Problem! base:" + allIter.getBaseNode() + ", adj:" + allIter.getAdjNode() + ", edge:" + allIter.getEdge(), ex); } }
void addNode( InMemEntry entry, int nodeId, int depth, long keyPart, long key ) { if (entry.isLeaf()) { InMemLeafEntry leafEntry = (InMemLeafEntry) entry; leafEntry.addNode(nodeId); } else { int index = (int) (bitmasks[depth] & keyPart); keyPart = keyPart >>> shifts[depth]; InMemTreeEntry treeEntry = ((InMemTreeEntry) entry); InMemEntry subentry = treeEntry.getSubEntry(index); depth++; if (subentry == null) { if (depth == entries.length) { subentry = new InMemLeafEntry(initSizeLeafEntries, key); } else { subentry = new InMemTreeEntry(entries[depth]); } treeEntry.setSubEntry(index, subentry); } addNode(subentry, nodeId, depth, keyPart, key); } }
void addNode(InMemEntry entry, int nodeId, int depth, long keyPart, long key) { if (entry.isLeaf()) { InMemLeafEntry leafEntry = (InMemLeafEntry) entry; leafEntry.addNode(nodeId); } else { int index = (int) (bitmasks[depth] & keyPart); keyPart = keyPart >>> shifts[depth]; InMemTreeEntry treeEntry = ((InMemTreeEntry) entry); InMemEntry subentry = treeEntry.getSubEntry(index); depth++; if (subentry == null) { if (depth == entries.length) { subentry = new InMemLeafEntry(initSizeLeafEntries, key); } else { subentry = new InMemTreeEntry(entries[depth]); } treeEntry.setSubEntry(index, subentry); } addNode(subentry, nodeId, depth, keyPart, key); } }
void addNode(InMemEntry entry, int nodeId, int depth, long keyPart, long key) { if (entry.isLeaf()) { InMemLeafEntry leafEntry = (InMemLeafEntry) entry; leafEntry.addNode(nodeId); } else { int index = (int) (bitmasks[depth] & keyPart); keyPart = keyPart >>> shifts[depth]; InMemTreeEntry treeEntry = ((InMemTreeEntry) entry); InMemEntry subentry = treeEntry.getSubEntry(index); depth++; if (subentry == null) { if (depth == entries.length) { subentry = new InMemLeafEntry(initSizeLeafEntries, key); } else { subentry = new InMemTreeEntry(entries[depth]); } treeEntry.setSubEntry(index, subentry); } addNode(subentry, nodeId, depth, keyPart, key); } }
@Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } };
@Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } };
@Override public void set( double lat, double lon ) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } };
void addNode(InMemEntry entry, int nodeId, int depth, long keyPart, long key) { if (entry.isLeaf()) { InMemLeafEntry leafEntry = (InMemLeafEntry) entry; leafEntry.addNode(nodeId); } else { int index = (int) (bitmasks[depth] & keyPart); keyPart = keyPart >>> shifts[depth]; InMemTreeEntry treeEntry = ((InMemTreeEntry) entry); InMemEntry subentry = treeEntry.getSubEntry(index); depth++; if (subentry == null) { if (depth == entries.length) { subentry = new InMemLeafEntry(initSizeLeafEntries, key); } else { subentry = new InMemTreeEntry(entries[depth]); } treeEntry.setSubEntry(index, subentry); } addNode(subentry, nodeId, depth, keyPart, key); } }
@Override public void set(double lat, double lon) { long key = keyAlgo.encode(lat, lon); long keyPart = createReverseKey(key); // no need to feed both nodes as we search neighbors in fillIDs addNode(root, nodeA, 0, keyPart, key); } };