package btools.mapdecoder; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.zip.Inflater; /** * Manage the mapping between locale and native node indexes */ public class LocaleIndexMapping { private int[] refZoomDelta; private int[] refNativeIndex; private OsmTile[] tileForZoomDelta; public LocaleIndexMapping( OsmTile tile, BitReadBuffer brb ) throws Exception { // prepare the locale index array int localeNodeCount = brb.decodeInt(); refZoomDelta = new int[localeNodeCount]; refNativeIndex = new int[localeNodeCount]; tileForZoomDelta = new OsmTile[tile.zoom + 1]; for( OsmTile t = tile; t != null; t = t.parent ) { tileForZoomDelta[tile.zoom-t.zoom] = t; } // decode the down-zoom refs for( int zoomDelta=tile.zoom; zoomDelta > 0; zoomDelta-- ) { long[] localeIndexes = brb.decodeSortedArray(); long[] nativeIndexes = brb.decodeSortedArray(); for( int i=0; inative mapping for zoomDelta=0 int localeIdx = 0; int nodecount = tile.nodePositions.length; for( int i=0; i