本文整理汇总了Java中org.openstreetmap.osmosis.osmbinary.Osmformat.Node方法的典型用法代码示例。如果您正苦于以下问题:Java Osmformat.Node方法的具体用法?Java Osmformat.Node怎么用?Java Osmformat.Node使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.openstreetmap.osmosis.osmbinary.Osmformat
的用法示例。
在下文中一共展示了Osmformat.Node方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
@Override
protected void parseNodes(List<Osmformat.Node> pbfNodes) {
for (Osmformat.Node pbfNode : pbfNodes) {
Map<String, String> tags = new HashMap<String, String>();
for (int j = 0; j < pbfNode.getKeysCount(); j++) {
tags.put(getStringById(pbfNode.getKeys(j)), getStringById(pbfNode.getVals(j)));
}
Node osmNode = null;
long id = pbfNode.getId();
double latf = parseLat(pbfNode.getLat()), lonf = parseLon(pbfNode.getLon());
boolean visible = true;
if (pbfNode.hasInfo()) {
Osmformat.Info info = pbfNode.getInfo();
if (info.hasVisible()) visible = info.getVisible();
osmNode = new Node(OsmElementType.NODE, id, info.getUid(), getStringById(info.getUserSid()),
getDate(info), (int) info.getChangeset(), (short) info.getVersion(), visible, tags,
(info.getVisible() ? new Coordinate(lonf, latf) : null));
}
osmDataConsumer.process(osmNode);
}
}
示例2: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
@Override
protected void parseNodes(List<Osmformat.Node> nodes) {
for (Osmformat.Node n : nodes) {
Node n2 = new Node();
Primitive p = getPrimitive(n.getInfo());
p.setId(n.getId());
p.setTags(getTags(n.getKeysList(), n.getValsList()));
n2.setCommon(p);
n2.setLatitude(parseLat(n.getLat()));
n2.setLongitude(parseLon(n.getLon()));
try {
nodeWriter.append(n2);
}
catch (IOException e) {
LOGGER.error("Unable to write node", e);
}
}
}
示例3: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
/** Note that in many PBF files this function is never called because all nodes are dense. */
@Override
protected void parseNodes(List<Osmformat.Node> nodes) {
try {
for (Osmformat.Node n : nodes) {
if (nodeCount++ % 10000000 == 0) {
LOG.info("node {}", human(nodeCount));
}
Node node = new Node(parseLat(n.getLat()), parseLon(n.getLon()));
for (int k = 0; k < n.getKeysCount(); k++) {
String key = getStringById(n.getKeys(k));
String val = getStringById(n.getVals(k));
if (retainTag(key)) node.addTag(key, val);
}
entitySink.writeNode(n.getId(), node);
}
} catch (IOException ex) {
LOG.error("An I/O exception occurred in the OSM entity sink.");
ex.printStackTrace();
}
}
示例4: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
@Override
protected void parseNodes(
List<Osmformat.Node> nodes ) {
for (Osmformat.Node n : nodes) {
Node n2 = new Node();
Primitive p = getPrimitive(n.getInfo());
p.setId(n.getId());
p.setTags(getTags(
n.getKeysList(),
n.getValsList()));
n2.setCommon(p);
n2.setLatitude(parseLat(n.getLat()));
n2.setLongitude(parseLon(n.getLon()));
try {
nodeWriter.append(n2);
}
catch (IOException e) {
LOGGER.error(
"Unable to write node",
e);
}
}
}
示例5: processNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
private void processNodes( List<Osmformat.Node> nodes, BPbfFieldDecoder fieldDecoder )
{
for (Osmformat.Node node : nodes)
{
Map<String, String> tags = buildTags(node.getKeysList(), node.getValsList(), fieldDecoder);
parser.addNode( node.getId(), tags, fieldDecoder.decodeLatitude(node
.getLat()), fieldDecoder.decodeLatitude(node.getLon()));
}
}
示例6: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
@Override
protected void parseNodes(List<Osmformat.Node> nodes) {
for (Osmformat.Node i : nodes) {
int tagCnt = i.getKeysCount();
TagSet tags = new TagSet(tagCnt);
// List<Tag> tags = new ArrayList<Tag>();
for (int j = 0; j < tagCnt; j++) {
tags.add(new Tag(getStringById(i.getKeys(j)), getStringById(i.getVals(j))));
}
// long id, int version, Date timestamp, OsmUser user,
// long changesetId, Collection<Tag> tags,
// double latitude, double longitude
OsmNode tmp;
long id = i.getId();
double latf = parseLat(i.getLat()), lonf = parseLon(i.getLon());
// if (i.hasInfo()) {
// Osmformat.Info info = i.getInfo();
// tmp = new OsmNode(new CommonEntityData(id, info.getVersion(), getDate(info),
// getUser(info), info.getChangeset(), tags), latf, lonf);
// } else {
tmp = new OsmNode(latf, lonf, tags, id);
// tmp = new Node(new CommonEntityData(id, NOVERSION, NODATE, OsmUser.NONE,
// NOCHANGESET, tags), latf, lonf);
// }
//sink.process(new NodeContainer(tmp));
mNodeMap.put(Long.valueOf(id), tmp);
}
}
示例7: parseNodes
import org.openstreetmap.osmosis.osmbinary.Osmformat; //导入方法依赖的package包/类
@Override
protected void parseNodes(List<Osmformat.Node> nodes) {
for (Osmformat.Node i : nodes) {
int tagCnt = i.getKeysCount();
TagSet tags = new TagSet(tagCnt);
// List<Tag> tags = new ArrayList<Tag>();
for (int j = 0; j < tagCnt; j++) {
tags.add(new Tag(getStringById(i.getKeys(j)), getStringById(i.getVals(j))));
}
// long id, int version, Date timestamp, OsmUser user,
// long changesetId, Collection<Tag> tags,
// double latitude, double longitude
OSMNode tmp;
long id = i.getId();
double latf = parseLat(i.getLat()), lonf = parseLon(i.getLon());
// if (i.hasInfo()) {
// Osmformat.Info info = i.getInfo();
// tmp = new OSMNode(new CommonEntityData(id, info.getVersion(), getDate(info),
// getUser(info), info.getChangeset(), tags), latf, lonf);
// } else {
tmp = new OSMNode(latf, lonf, tags, id);
// tmp = new Node(new CommonEntityData(id, NOVERSION, NODATE, OsmUser.NONE,
// NOCHANGESET, tags), latf, lonf);
// }
//sink.process(new NodeContainer(tmp));
mNodeMap.put(Long.valueOf(id), tmp);
}
}