private void processWays(List<Osmformat.Way> ways, PbfFieldDecoder fieldDecoder) { for (Osmformat.Way way : ways) { Map<String, String> tags = buildTags(way.getKeysList(), way.getValsList(), fieldDecoder); ReaderWay osmWay = new ReaderWay(way.getId()); osmWay.setTags(tags); // Build up the list of way nodes for the way. The node ids are // delta encoded meaning that each id is stored as a delta against // the previous one. long nodeId = 0; LongIndexedContainer wayNodes = osmWay.getNodes(); for (long nodeIdOffset : way.getRefsList()) { nodeId += nodeIdOffset; wayNodes.add(nodeId); } decodedEntities.add(osmWay); } }
if (!getKeysList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream if (!getValsList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getInfo()); if (!getRefsList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream if (!getLatList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream if (!getLonList().isEmpty()) { size += 1; size += com.google.protobuf.CodedOutputStream
@java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); if (((bitField0_ & 0x00000001) == 0x00000001)) { output.writeInt64(1, id_); if (getKeysList().size() > 0) { output.writeUInt32NoTag(18); output.writeUInt32NoTag(keysMemoizedSerializedSize); if (getValsList().size() > 0) { output.writeUInt32NoTag(26); output.writeUInt32NoTag(valsMemoizedSerializedSize); output.writeMessage(4, getInfo()); if (getRefsList().size() > 0) { output.writeUInt32NoTag(66); output.writeUInt32NoTag(refsMemoizedSerializedSize); if (getLatList().size() > 0) { output.writeUInt32NoTag(74); output.writeUInt32NoTag(latMemoizedSerializedSize); if (getLonList().size() > 0) { output.writeUInt32NoTag(82); output.writeUInt32NoTag(lonMemoizedSerializedSize);
for (Osmformat.Way i : ways) { List<Tag> tags = new ArrayList<Tag>(); for (int j = 0; j < i.getKeysCount(); j++) { tags.add(new Tag(getStringById(i.getKeys(j)), getStringById(i.getVals(j)))); long lastLon = 0; List<WayNode> nodes = new ArrayList<WayNode>(); for (int index = 0; index < i.getRefsCount(); index++) { long identifier = lastId + i.getRefs(index); WayNode node; if (index < i.getLatCount() && index < i.getLonCount()) { long lat = lastLat + i.getLat(index); long lon = lastLon + i.getLon(index); node = new WayNode(identifier, parseLat(lat), parseLon(lon)); lastLat = lat; long id = i.getId(); if (i.hasInfo()) { Osmformat.Info info = i.getInfo(); tmp = new Way(new CommonEntityData(id, info.getVersion(), getDate(info), getUser(info), info.getChangeset(), tags), nodes);
CommonEntityData entityData; if (way.hasInfo()) { entityData = buildCommonEntityData(way.getId(), way.getKeysList(), way.getValsList(), way.getInfo(), fieldDecoder); entityData = buildCommonEntityData(way.getId(), way.getKeysList(), way.getValsList(), fieldDecoder); List<WayNode> wayNodes = osmWay.getWayNodes(); for (int i = 0; i < way.getRefsCount(); i++) { nodeId += way.getRefs(i); if (i < way.getLatCount() && i < way.getLonCount()) { latitude += way.getLat(i); longitude += way.getLon(i); wayNodes.add(new WayNode( nodeId,
@Override protected void parseWays(List<Osmformat.Way> ways) { try { for (Osmformat.Way w : ways) { if (wayCount++ % 1000000 == 0) { LOG.info("way {}", human(wayCount)); } Way way = new Way(); /* Handle tags */ for (int k = 0; k < w.getKeysCount(); k++) { String key = getStringById(w.getKeys(k)); String val = getStringById(w.getVals(k)); if (retainTag(key)) way.addTag(key, val); } /* Handle nodes */ List<Long> rl = w.getRefsList(); long[] nodes = new long[rl.size()]; long ref = 0; for (int n = 0; n < nodes.length; n++) { ref += rl.get(n); nodes[n] = ref; } way.nodes = nodes; entitySink.writeWay(w.getId(), way); } } catch (IOException ex) { LOG.error("An I/O exception occurred in the OSM entity sink."); ex.printStackTrace(); } }
private void processWays( List<Osmformat.Way> ways, PbfFieldDecoder fieldDecoder ) { for (Osmformat.Way way : ways) { Map<String, String> tags = buildTags(way.getKeysList(), way.getValsList(), fieldDecoder); OSMWay osmWay = new OSMWay(way.getId()); osmWay.setTags(tags); // Build up the list of way nodes for the way. The node ids are // delta encoded meaning that each id is stored as a delta against // the previous one. long nodeId = 0; TLongList wayNodes = osmWay.getNodes(); for (long nodeIdOffset : way.getRefsList()) { nodeId += nodeIdOffset; wayNodes.add(nodeId); } decodedEntities.add(osmWay); } }
@Override protected void parseWays(List<Osmformat.Way> ways) { for (Osmformat.Way w : ways) { AvroWay w2 = new AvroWay(); AvroPrimitive p = getPrimitive(w.getInfo()); p.setId(w.getId()); p.setTags(getTags(w.getKeysList(), w.getValsList())); w2.setCommon(p); long lastRef = 0; List<Long> nodes = new ArrayList<>(w.getRefsCount()); for (Long ref : w.getRefsList()) { lastRef += ref; nodes.add(lastRef); } w2.setNodes(nodes); try { wayWriter.append(w2); } catch (IOException e) { LOGGER.error("Unable to write way", e); } } }
private void processWays(List<Osmformat.Way> ways, PbfFieldDecoder fieldDecoder) { for (Osmformat.Way way : ways) { Map<String, String> tags = buildTags(way.getKeysList(), way.getValsList(), fieldDecoder); ReaderWay osmWay = new ReaderWay(way.getId()); osmWay.setTags(tags); // Build up the list of way nodes for the way. The node ids are // delta encoded meaning that each id is stored as a delta against // the previous one. long nodeId = 0; LongIndexedContainer wayNodes = osmWay.getNodes(); for (long nodeIdOffset : way.getRefsList()) { nodeId += nodeIdOffset; wayNodes.add(nodeId); } decodedEntities.add(osmWay); } }
private void processWays(List<Osmformat.Way> ways, PbfFieldDecoder fieldDecoder) { for (Osmformat.Way way : ways) { Map<String, String> tags = buildTags(way.getKeysList(), way.getValsList(), fieldDecoder); ReaderWay osmWay = new ReaderWay(way.getId()); osmWay.setTags(tags); // Build up the list of way nodes for the way. The node ids are // delta encoded meaning that each id is stored as a delta against // the previous one. long nodeId = 0; LongIndexedContainer wayNodes = osmWay.getNodes(); for (long nodeIdOffset : way.getRefsList()) { nodeId += nodeIdOffset; wayNodes.add(nodeId); } decodedEntities.add(osmWay); } }
/** * <pre> * DELTA coded * </pre> * * <code>repeated sint64 refs = 8 [packed = true];</code> */ @java.lang.Override public java.util.List<java.lang.Long> getRefsList() { return java.util.Collections.unmodifiableList( instance.getRefsList()); } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ @java.lang.Override public java.util.List<java.lang.Integer> getKeysList() { return java.util.Collections.unmodifiableList( instance.getKeysList()); } /**
/** * <code>repeated uint32 vals = 3 [packed = true];</code> */ @java.lang.Override public java.util.List<java.lang.Integer> getValsList() { return java.util.Collections.unmodifiableList( instance.getValsList()); } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ @java.lang.Override public int getKeys(int index) { return instance.getKeys(index); } /**
/** * <pre> * DELTA coded * </pre> * * <code>repeated sint64 refs = 8 [packed = true];</code> */ @java.lang.Override public int getRefsCount() { return instance.getRefsCount(); } /**
/** * <code>optional .OSMPBF.Info info = 4;</code> */ @java.lang.Override public org.openstreetmap.osmosis.osmbinary.Osmformat.Info getInfo() { return instance.getInfo(); } /**
/** * <code>required int64 id = 1;</code> */ @java.lang.Override public long getId() { return instance.getId(); } /**
/** * <code>repeated sint64 lat = 9 [packed = true];</code> */ @java.lang.Override public long getLat(int index) { return instance.getLat(index); } /**
/** * <code>repeated sint64 lat = 9 [packed = true];</code> */ @java.lang.Override public int getLatCount() { return instance.getLatCount(); } /**
/** * <pre> * Parallel arrays. * </pre> * * <code>repeated uint32 keys = 2 [packed = true];</code> */ @java.lang.Override public int getKeysCount() { return instance.getKeysCount(); } /**