コード例 #1
0
ファイル: TboIdIterator.java プロジェクト: topobyte/osm4j-tbo
  private void advanceBlock() throws IOException {
    block = readBlock();
    if (block == null) {
      valid = false;
      return;
    }
    pointer = 0;
    available = block.getNumObjects();

    byte[] uncompressed = Decompression.decompress(block);

    ByteArrayInputStream bais = new ByteArrayInputStream(uncompressed);
    CompactReader reader = new InputStreamCompactReader(bais);

    switch (block.getType()) {
      case Definitions.BLOCK_TYPE_NODES:
        entityType = EntityType.Node;
        ids = ReaderUtil.parseNodeIds(reader, block);
        break;
      case Definitions.BLOCK_TYPE_WAYS:
        entityType = EntityType.Way;
        ids = ReaderUtil.parseWayIds(reader, block);
        break;
      case Definitions.BLOCK_TYPE_RELATIONS:
        entityType = EntityType.Relation;
        ids = ReaderUtil.parseRelationIds(reader, block);
        break;
    }
  }