Package crosby.binary

Examples of crosby.binary.Osmformat$Way


  public void badSortOrderType() throws Exception {
    ChangeSimplifier simplifier = new ChangeSimplifier();
    simplifier.setChangeSink(new NullChangeWriter());
    simplifier.initialize(new HashMap<String, Object>());
    Node node;
    Way way;
   
    way = new Way(new CommonEntityData(2, 2, new Date(), OsmUser.NONE, 2));
    simplifier.process(new ChangeContainer(new WayContainer(way), ChangeAction.Modify));

    try {
      node = new Node(new CommonEntityData(1, 2, new Date(), OsmUser.NONE, 1), 1, 1);
      simplifier.process(new ChangeContainer(new NodeContainer(node), ChangeAction.Modify));
View Full Code Here


            long id = i.getId();

            // long id, int version, Date timestamp, OsmUser user,
            // long changesetId, Collection<Tag> tags,
            // List<WayNode> wayNodes
            Way tmp;
            if (i.hasInfo()) {
                Osmformat.Info info = i.getInfo();
                tmp = new Way(new CommonEntityData(id, info.getVersion(), getDate(info),
                        getUser(info), info.getChangeset(), tags), nodes);
            } else {
                tmp = new Way(new CommonEntityData(id, NOVERSION, NODATE, OsmUser.NONE, NOCHANGESET,
                        tags), nodes);
            }
            sink.process(new WayContainer(tmp));
        }
    }
View Full Code Here

 
  /**
   * {@inheritDoc}
   */
  public void process(WayContainer wayContainer) {
    Way way;
    int sequenceId;
   
    way = wayContainer.getEntity();
   
    // Ignore ways with a single node because they can't be loaded into postgis.
    if (way.getWayNodes().size() > 1) {
      wayWriter.writeField(way.getId());
      wayWriter.writeField(way.getVersion());
      wayWriter.writeField(way.getUser().getId());
      wayWriter.writeField(way.getTimestamp());
      wayWriter.writeField(way.getChangesetId());
      if (enableBboxBuilder) {
        wayWriter.writeField(wayGeometryBuilder.createWayBbox(way));
      }
      if (enableLinestringBuilder) {
        wayWriter.writeField(wayGeometryBuilder.createWayLinestring(way));
      }
      wayWriter.endRecord();
     
      for (Tag tag : way.getTags()) {
        wayTagWriter.writeField(way.getId());
        wayTagWriter.writeField(tag.getKey());
        wayTagWriter.writeField(tag.getValue());
        wayTagWriter.endRecord();
      }
     
      sequenceId = 0;
      for (WayNode wayNode : way.getWayNodes()) {
        wayNodeWriter.writeField(way.getId());
        wayNodeWriter.writeField(wayNode.getNodeId());
        wayNodeWriter.writeField(sequenceId++);
        wayNodeWriter.endRecord();
      }
    }
View Full Code Here

            processedWays = new ArrayList<Way>(INSERT_BULK_ROW_COUNT_WAY);

            prmIndex = 1;
            for (int i = 0; i < INSERT_BULK_ROW_COUNT_WAY; i++) {
                Way way;

                way = wayBuffer.remove(0);
                processedWays.add(way);

                populateWayParameters(bulkWayStatement, prmIndex, way);
                prmIndex += INSERT_PRM_COUNT_WAY;
            }

            try {
                bulkWayStatement.executeUpdate();
            } catch (SQLException e) {
                throw new OsmosisRuntimeException("Unable to bulk insert ways into the database.", e);
            }

            for (Way way : processedWays) {
                addWayTags(way);
                addWayNodes(way);
            }
        }

        if (complete) {
            while (wayBuffer.size() > 0) {
                Way way;

                way = wayBuffer.remove(0);

                populateWayParameters(singleWayStatement, 1, way);
View Full Code Here

    /**
     * {@inheritDoc}
     */
    public void process(WayContainer wayContainer) {
        Way way;
        long wayId;

        flushNodes(true);

        way = wayContainer.getEntity();
        wayId = way.getId();

        if (wayId >= maxWayId) {
            maxWayId = wayId + 1;
        }
        if (wayId < minWayId) {
View Full Code Here

   * {@inheritDoc}
   */
  @Override
  public Way parseRecord(ResultSet resultSet) {
    try {
      return new Way(
        new CommonEntityData(
          resultSet.getLong("id"),
          resultSet.getInt("version"),
          new Date(resultSet.getTimestamp("tstamp").getTime()),
          buildUser(resultSet),
View Full Code Here

 
  /**
   * {@inheritDoc}
   */
  public void process(WayContainer wayContainer) {
    Way way;
    long wayId;
    long objectOffset;
    int minimumTile;
    int maximumTile;
    boolean tilesFound;
   
    if (nodeObjectReader == null) {
      nodeObjectStore.complete();
      nodeObjectReader = nodeObjectStore.createReader();
    }
    if (nodeObjectOffsetIndexReader == null) {
      nodeObjectOffsetIndexWriter.complete();
      nodeObjectOffsetIndexReader = nodeObjectOffsetIndexWriter.createReader();
    }
   
    way = wayContainer.getEntity();
    wayId = way.getId();
   
    // Write the way to the object store and save the file offset in an
    // index keyed by way id.
    objectOffset = wayObjectStore.add(way);
    wayObjectOffsetIndexWriter.write(
      new LongLongIndexElement(wayId, objectOffset)
    );
   
    if (enableWayTileIndex) {
    // Calculate the minimum and maximum tile indexes for the way.
    tilesFound = false;
    minimumTile = 0;
    maximumTile = 0;
    for (WayNode wayNode : way.getWayNodes()) {
      long nodeId;
      Node node;
      int tile;
     
      nodeId = wayNode.getNodeId();
     
      try {
      node = nodeObjectReader.get(
        nodeObjectOffsetIndexReader.get(nodeId).getValue()
      );
     
      tile = (int) tileCalculator.calculateTile(node.getLatitude(), node.getLongitude());
     
      if (tilesFound) {
        if (uintComparator.compare(tile, minimumTile) < 0) {
          minimumTile = tile;
        }
        if (uintComparator.compare(maximumTile, tile) < 0) {
          maximumTile = tile;
        }
       
      } else {
        minimumTile = tile;
        maximumTile = tile;
       
        tilesFound = true;
      }
       
      } catch (NoSuchIndexElementException e) {
        // Ignore any referential integrity problems.
        if (LOG.isLoggable(Level.FINER)) {
          LOG.finest(
            "Ignoring referential integrity problem where way " + wayId
            + " refers to non-existent node " + nodeId + "."
          );
    }
      }
    }
   
    // Write the way id to an index keyed by tile but only if tiles were
    // actually found.
    if (tilesFound) {
    wayTileIndexWriter.write(wayId, minimumTile, maximumTile);
      }
     
    } else {
      for (WayNode wayNode : way.getWayNodes()) {
        long nodeId;
       
        nodeId = wayNode.getNodeId();
       
        nodeWayIndexWriter.write(new LongLongIndexElement(nodeId, wayId));
View Full Code Here

  /**
   * {@inheritDoc}
   */
  @Override
  public Way getEntity(long entityId) {
    Way entity;
   
    entity = super.getEntity(entityId);
   
    loadFeatures(entityId, entity);
   
View Full Code Here

 
  /**
   * {@inheritDoc}
   */
  public void process(WayContainer container) {
    Way way;
    boolean inArea;
   
    way = container.getEntity();

    // Check if we're storing entities for later.
    if (storeEntities) {
      allWays.add(container);
    }
   
    // First look through all the nodes to see if any are within the filtered area
    inArea = false;
    for (WayNode nodeReference : way.getWayNodes()) {
      if (availableNodes.get(nodeReference.getNodeId())) {
        inArea = true;
        break;
      }
    }
   
    // If the way has at least one node in the filtered area.
    if (inArea) {
      availableWays.set(way.getId());
     
      // If complete ways are desired, mark any unavailable nodes as required.
      if (completeWays) {
        for (WayNode nodeReference : way.getWayNodes()) {
          long nodeId = nodeReference.getNodeId();
         
          if (!availableNodes.get(nodeId)) {
            requiredNodes.set(nodeId);
          }
View Full Code Here

  /**
   * Test processing a Way.
   */
  @Test
  public final void testProcess6() {
    Way testWay;
   
    testWay = new Way(new CommonEntityData(3456, 0, new Date(), new OsmUser(12, "OsmosisTest"), 0));
    testWay.getWayNodes().add(new WayNode(1234));
    testWay.getWayNodes().add(new WayNode(1235));
    testWay.getTags().add(new Tag("test_key1", "test_value1"));
   
    testOsmWriter.process(new WayContainer(testWay));
    // Nothing to assert; just expect no exception
  }
View Full Code Here

TOP

Related Classes of crosby.binary.Osmformat$Way

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.