Example #1
0
  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;
  }