private void loadSubregionTile(final RoutingSubregionTile ts, boolean loadObjectsInMemory) { boolean wasUnloaded = ts.isUnloaded(); int ucount = ts.getUnloadCont(); if (nativeLib == null) { long now = System.nanoTime(); try { BinaryMapIndexReader reader = reverseMap.get(ts.subregion.routeReg); ts.setLoadedNonNative(); List<RouteDataObject> res = reader.loadRouteIndexData(ts.subregion); // System.out.println(ts.subregion.shiftToData + " " + res); for (RouteDataObject ro : res) { if (ro != null && config.router.acceptLine(ro)) { ts.add(ro); } } } catch (IOException e) { throw new RuntimeException("Loading data exception", e); } timeToLoad += (System.nanoTime() - now); } else { long now = System.nanoTime(); NativeRouteSearchResult ns = nativeLib.loadRouteRegion(ts.subregion, loadObjectsInMemory); // System.out.println(ts.subregion.shiftToData + " " + Arrays.toString(ns.objects)); ts.setLoadedNative(ns, this); timeToLoad += (System.nanoTime() - now); } loadedTiles++; if (wasUnloaded) { if (ucount == 1) { loadedPrevUnloadedTiles++; } } else { if (global != null) { global.allRoutes += ts.tileStatistics.allRoutes; global.coordinates += ts.tileStatistics.coordinates; } distinctLoadedTiles++; } global.size += ts.tileStatistics.size; }