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); 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())); bi.addKeys(stable.getIndex(t.getKey())); bi.addVals(stable.getIndex(t.getValue())); bi.setInfo(serializeMetadata(i));
Osmformat.Relation.Builder builder = Osmformat.Relation.newBuilder().setId(id); for (OSMEntity.Tag tag : relation.tags) { if (tag.value == null) tag.value = ""; builder.addKeys(stringTable.getCode(tag.key)); builder.addVals(stringTable.getCode(tag.value)); builder.addMemids(member.id - lastMemberId); // delta-coded member references lastMemberId = member.id; builder.addRolesSid(stringTable.getCode(member.role)); Osmformat.Relation.MemberType memberType; if (member.type == OSMEntity.Type.NODE) { throw new RuntimeException("Member type was not defined."); builder.addTypes(memberType); primitiveGroupBuilder.addRelations(builder.build());
return new Builder();
PrimitiveGroup.newBuilder() .addRelations(Relation.newBuilder() .setId(601) .addTypes(MemberType.NODE).addMemids(50).addRolesSid(2) .addTypes(MemberType.NODE).addMemids(3).addRolesSid(3) .addTypes(MemberType.WAY).addMemids(3).addRolesSid(4) .addTypes(MemberType.RELATION).addMemids(3).addRolesSid(5)) .addRelations(Relation.newBuilder() .setId(701) .addTypes(MemberType.RELATION).addMemids(60).addRolesSid(6) .addTypes(MemberType.RELATION).addMemids(5).addRolesSid(7) .addKeys(1).addVals(2)));
/** * <pre> * DELTA encoded * </pre> * * <code>repeated sint64 memids = 9 [packed = true];</code> */ public Builder addAllMemids( java.lang.Iterable<? extends java.lang.Long> values) { copyOnWrite(); instance.addAllMemids(values); return this; } /**
/** * <pre> * Parallel arrays * </pre> * * <code>repeated int32 roles_sid = 8 [packed = true];</code> */ public Builder addAllRolesSid( java.lang.Iterable<? extends java.lang.Integer> values) { copyOnWrite(); instance.addAllRolesSid(values); return this; } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ public Builder addAllKeys( java.lang.Iterable<? extends java.lang.Integer> values) { copyOnWrite(); instance.addAllKeys(values); return this; } /**
/** * <pre> * Parallel arrays * </pre> * * <code>repeated int32 roles_sid = 8 [packed = true];</code> */ public Builder setRolesSid( int index, int value) { copyOnWrite(); instance.setRolesSid(index, value); return this; } /**
/** * <pre> * DELTA encoded * </pre> * * <code>repeated sint64 memids = 9 [packed = true];</code> */ public Builder setMemids( int index, long value) { copyOnWrite(); instance.setMemids(index, value); return this; } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ public Builder setKeys( int index, int value) { copyOnWrite(); instance.setKeys(index, value); return this; } /**
/** * <pre> * DELTA encoded * </pre> * * <code>repeated sint64 memids = 9 [packed = true];</code> */ public Builder addMemids(long value) { copyOnWrite(); instance.addMemids(value); return this; } /**
/** * <pre> * Parallel arrays * </pre> * * <code>repeated int32 roles_sid = 8 [packed = true];</code> */ public Builder addRolesSid(int value) { copyOnWrite(); instance.addRolesSid(value); return this; } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ public Builder addKeys(int value) { copyOnWrite(); instance.addKeys(value); return this; } /**
/** * <code>optional .OSMPBF.Info info = 4;</code> */ public Builder clearInfo() { copyOnWrite(); instance.clearInfo(); return this; }
/** * <code>repeated uint32 vals = 3 [packed = true];</code> */ public Builder clearVals() { copyOnWrite(); instance.clearVals(); return this; }
/** * <code>repeated uint32 vals = 3 [packed = true];</code> */ public Builder setVals( int index, int value) { copyOnWrite(); instance.setVals(index, value); return this; } /**
/** * <code>repeated .OSMPBF.Relation relations = 4;</code> */ private void addRelations( org.openstreetmap.osmosis.osmbinary.Osmformat.Relation.Builder builderForValue) { ensureRelationsIsMutable(); relations_.add(builderForValue.build()); } /**
/** * <code>repeated .OSMPBF.Relation.MemberType types = 10 [packed = true];</code> */ public Builder addTypes(org.openstreetmap.osmosis.osmbinary.Osmformat.Relation.MemberType value) { copyOnWrite(); instance.addTypes(value); return this; } /**
/** * <code>optional .OSMPBF.Info info = 4;</code> */ public Builder mergeInfo(org.openstreetmap.osmosis.osmbinary.Osmformat.Info value) { copyOnWrite(); instance.mergeInfo(value); return this; } /**
/** * <code>repeated uint32 vals = 3 [packed = true];</code> */ public Builder addAllVals( java.lang.Iterable<? extends java.lang.Integer> values) { copyOnWrite(); instance.addAllVals(values); return this; } /**