public GHPoint get(long index) { int segmentNo = (int) (index / entriesPerSegment); int entry = (int) (index % entriesPerSegment); try { if (segmentNo >= segments.size()) { return null; } byte[] bytes = segments.get(segmentNo); VLongStorage store = new VLongStorage(decompress(bytes)); long len = store.getLength(); for (int i = 0; store.getPosition() < len; i++) { long latlon = store.readVLong(); if (i == entry) { GHPoint point = new GHPoint(); algo.decode(latlon, point); return point; } } return null; } catch (ArrayIndexOutOfBoundsException ex) { throw new RuntimeException("index " + index + "=> segNo:" + segmentNo + ", entry=" + entry + ", segments:" + segments.size(), ex); } catch (Exception ex) { throw new RuntimeException(ex); } }
public GHPoint get(long index) { int segmentNo = (int) (index / entriesPerSegment); int entry = (int) (index % entriesPerSegment); try { if (segmentNo >= segments.size()) { return null; } byte[] bytes = segments.get(segmentNo); VLongStorage store = new VLongStorage(decompress(bytes)); long len = store.getLength(); for (int i = 0; store.getPosition() < len; i++) { long latlon = store.readVLong(); if (i == entry) { GHPoint point = new GHPoint(); algo.decode(latlon, point); return point; } } return null; } catch (ArrayIndexOutOfBoundsException ex) { throw new RuntimeException("index " + index + "=> segNo:" + segmentNo + ", entry=" + entry + ", segments:" + segments.size(), ex); } catch (Exception ex) { throw new RuntimeException(ex); } }
public GHPoint get(long index) { int segmentNo = (int) (index / entriesPerSegment); int entry = (int) (index % entriesPerSegment); try { if (segmentNo >= segments.size()) { return null; } byte[] bytes = segments.get(segmentNo); VLongStorage store = new VLongStorage(decompress(bytes)); long len = store.getLength(); for (int i = 0; store.getPosition() < len; i++) { long latlon = store.readVLong(); if (i == entry) { GHPoint point = new GHPoint(); algo.decode(latlon, point); return point; } } return null; } catch (ArrayIndexOutOfBoundsException ex) { throw new RuntimeException("index " + index + "=> segNo:" + segmentNo + ", entry=" + entry + ", segments:" + segments.size(), ex); } catch (Exception ex) { throw new RuntimeException(ex); } }
long len = store.getLength(); for (int i = 0; store.getPosition() < len; i++)