Package org.openstreetmap.osmosis.osmbinary

Examples of org.openstreetmap.osmosis.osmbinary.StringTable


            contents.add(item);
        }

        /** Add all of the tags of all entities in the queue to the stringtable. */
        public void addStringsToStringtable() {
            StringTable stable = getStringTable();
            for (T i : contents) {
                Collection<Tag> tags = i.getTags();
                for (Tag tag : tags) {
                    stable.incr(tag.getKey());
                    stable.incr(tag.getValue());
                }
                if (!omit_metadata) {
                    stable.incr(i.getUser().getName());
                }
            }
        }
View Full Code Here


        return;
      }

      long lasttimestamp = 0, lastchangeset = 0;
      int lastuserSid = 0, lastuid = 0;
      StringTable stable = getStringTable();
      for (Entity e : entities) {

            if (e.getUser() == OsmUser.NONE && warncount  < MAXWARN) {
              LOG.warning("Attention: Data being output lacks metadata. Please use omitmetadata=true");
              warncount++;
            }
        int uid = e.getUser().getId();
        int userSid = stable.getIndex(e.getUser().getName());
        int timestamp = (int) (e.getTimestamp().getTime() / date_granularity);
        int version = e.getVersion();
        long changeset = e.getChangesetId();

        b.addVersion(version);
View Full Code Here

        lastuserSid = userSid;
      }
        }
        
        public Osmformat.Info.Builder serializeMetadata(Entity e) {
            StringTable stable = getStringTable();
            Osmformat.Info.Builder b = Osmformat.Info.newBuilder();
            if (!omit_metadata) {
                if (e.getUser() == OsmUser.NONE && warncount  < MAXWARN) {
                  LOG.warning("Attention: Data being output lacks metadata. Please use omitmetadata=true");
                  warncount++;
                }
                if (e.getUser() != OsmUser.NONE) {
                    b.setUid(e.getUser().getId());
                    b.setUserSid(stable.getIndex(e.getUser().getName()));
                }
                b.setTimestamp((int) (e.getTimestamp().getTime() / date_granularity));
                b.setVersion(e.getVersion());
                b.setChangeset(e.getChangesetId());
            }
View Full Code Here

              return null;
            }
            // System.out.format("%d Dense   ",nodes.size());
            Osmformat.PrimitiveGroup.Builder builder = Osmformat.PrimitiveGroup
                    .newBuilder();
            StringTable stable = getStringTable();

            long lastlat = 0, lastlon = 0, lastid = 0;
            Osmformat.DenseNodes.Builder bi = Osmformat.DenseNodes.newBuilder();
            boolean doesBlockHaveTags = false;
            // Does anything in this block have tags?
            for (Node i : contents) {
              doesBlockHaveTags = doesBlockHaveTags || (!i.getTags().isEmpty());
            }
            if (!omit_metadata) {
              Osmformat.DenseInfo.Builder bdi = Osmformat.DenseInfo.newBuilder();
              serializeMetadataDense(bdi, contents);
              bi.setDenseinfo(bdi);
            }
             
              for (Node i : contents) {
                long id = i.getId();
                int lat = mapDegrees(i.getLatitude());
                int lon = mapDegrees(i.getLongitude());
                bi.addId(id - lastid);
                lastid = id;
                bi.addLon(lon - lastlon);
                lastlon = lon;
                bi.addLat(lat - lastlat);
                lastlat = lat;

                // Then we must include tag information.
                if (doesBlockHaveTags) {
                  for (Tag t : i.getTags()) {
                      bi.addKeysVals(stable.getIndex(t.getKey()));
                      bi.addKeysVals(stable.getIndex(t.getValue()));
                  }
                  bi.addKeysVals(0); // Add delimiter.
                }
            }
            builder.setDense(bi);
View Full Code Here

        public Osmformat.PrimitiveGroup serializeNonDense() {
          if (contents.size() == 0) {
            return null;
          }
          // System.out.format("%d Nodes   ",nodes.size());
          StringTable stable = getStringTable();
          Osmformat.PrimitiveGroup.Builder builder = Osmformat.PrimitiveGroup
          .newBuilder();
          for (Node i : contents) {
            long id = i.getId();
            int lat = mapDegrees(i.getLatitude());
            int lon = mapDegrees(i.getLongitude());
            Osmformat.Node.Builder bi = Osmformat.Node.newBuilder();
            bi.setId(id);
            bi.setLon(lon);
            bi.setLat(lat);
            for (Tag t : i.getTags()) {
              bi.addKeys(stable.getIndex(t.getKey()));
              bi.addVals(stable.getIndex(t.getValue()));
            }
            if (!omit_metadata) {
              bi.setInfo(serializeMetadata(i));
            }
            builder.addNodes(bi);
View Full Code Here

        if (contents.size() == 0) {
          return null;
        }

            // System.out.format("%d Ways  ",contents.size());
            StringTable stable = getStringTable();
            Osmformat.PrimitiveGroup.Builder builder = Osmformat.PrimitiveGroup
                    .newBuilder();
            for (Way i : contents) {
                Osmformat.Way.Builder bi = Osmformat.Way.newBuilder();
                bi.setId(i.getId());
                long lastid = 0;
                for (WayNode j : i.getWayNodes()) {
                    long id = j.getNodeId();
                    bi.addRefs(id - lastid);
                    lastid = id;
                }
                for (Tag t : i.getTags()) {
                    bi.addKeys(stable.getIndex(t.getKey()));
                    bi.addVals(stable.getIndex(t.getValue()));
                }
                if (!omit_metadata) {
                    bi.setInfo(serializeMetadata(i));
                }
                builder.addWays(bi);
View Full Code Here

    }

    private class RelationGroup extends Prim<Relation> implements
            PrimGroupWriterInterface {
        public void addStringsToStringtable() {
            StringTable stable = getStringTable();
            super.addStringsToStringtable();
            for (Relation i : contents) {
                for (RelationMember j : i.getMembers()) {
                    stable.incr(j.getMemberRole());
                }
            }
        }
View Full Code Here

          if (contents.size() == 0) {
            return null;
          }

          // System.out.format("%d Relations  ",contents.size());
            StringTable stable = getStringTable();
            Osmformat.PrimitiveGroup.Builder builder = Osmformat.PrimitiveGroup
                    .newBuilder();
            for (Relation i : contents) {
                Osmformat.Relation.Builder bi = Osmformat.Relation.newBuilder();
                bi.setId(i.getId());
                RelationMember[] arr = new RelationMember[i.getMembers().size()];
                i.getMembers().toArray(arr);
                long lastid = 0;
                for (RelationMember j : i.getMembers()) {
                    long id = j.getMemberId();
                    bi.addMemids(id - lastid);
                    lastid = id;
                    if (j.getMemberType() == EntityType.Node) {
                        bi.addTypes(MemberType.NODE);
                    } else if (j.getMemberType() == EntityType.Way) {
                        bi.addTypes(MemberType.WAY);
                    } else if (j.getMemberType() == EntityType.Relation) {
                        bi.addTypes(MemberType.RELATION);
                    } else {
                        assert (false); // Software bug: Unknown entity.
                    }
                    bi.addRolesSid(stable.getIndex(j.getMemberRole()));
                }

                for (Tag t : i.getTags()) {
                    bi.addKeys(stable.getIndex(t.getKey()));
                    bi.addVals(stable.getIndex(t.getValue()));
                }
                if (!omit_metadata) {
                    bi.setInfo(serializeMetadata(i));
                }
                builder.addRelations(bi);
View Full Code Here

TOP

Related Classes of org.openstreetmap.osmosis.osmbinary.StringTable

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.