Changeset 35289 in osm for applications/editors/josm/plugins/comfort0/src
- Timestamp:
- 2020-01-13T21:45:29+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/OsmToLevel0L.java
r35282 r35289 1 1 package net.simon04.comfort0; 2 2 3 import java.util.Collections; 4 import java.util.List; 3 import java.util.Collection; 5 4 6 5 import org.openstreetmap.josm.data.coor.LatLon; 7 import org.openstreetmap.josm.data.osm. AbstractPrimitive;8 import org.openstreetmap.josm.data.osm. Changeset;6 import org.openstreetmap.josm.data.osm.DefaultNameFormatter; 7 import org.openstreetmap.josm.data.osm.KeyValueVisitor; 9 8 import org.openstreetmap.josm.data.osm.Node; 10 9 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 12 11 import org.openstreetmap.josm.data.osm.Relation; 13 12 import org.openstreetmap.josm.data.osm.RelationMember; 13 import org.openstreetmap.josm.data.osm.Tagged; 14 14 import org.openstreetmap.josm.data.osm.Way; 15 import org.openstreetmap.josm.data.osm.visitor.Visitor; 16 import org.openstreetmap.josm.gui.DefaultNameFormatter; 15 import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor; 17 16 18 public class OsmToLevel0L implements Visitor, AbstractPrimitive.KeyValueVisitor { 17 /** 18 * Implements a conversion from {@link OsmPrimitive} to <a href="https://wiki.openstreetmap.org/wiki/Level0L">Level0L</a>. 19 */ 20 public class OsmToLevel0L implements OsmPrimitiveVisitor, KeyValueVisitor { 19 21 20 22 private final StringBuilder sb = new StringBuilder(); 21 23 22 public void visit(List<OsmPrimitive> primitives) { 23 Collections.sort(primitives, new OsmPrimitiveComparator()); 24 for (OsmPrimitive primitive : primitives) { 25 primitive.accept(this); 26 } 24 public void visit(Collection<OsmPrimitive> primitives) { 25 primitives.stream() 26 .sorted(OsmPrimitiveComparator.orderingWaysRelationsNodes().thenComparing(OsmPrimitiveComparator.comparingUniqueId())) 27 .forEachOrdered(p -> p.accept(this)); 27 28 } 28 29 … … 56 57 sb.append("rel "); 57 58 break; 59 default: 60 break; 58 61 } 59 62 sb.append(member.getUniqueId()).append(" "); … … 66 69 sb.append("\n"); 67 70 sb.append(p.getType().getAPIName()).append(" ").append(p.getUniqueId()); 68 if (p instanceof Node && ((Node) p).isLatLonKnown()) { 69 final LatLon coor = ((Node) p).getCoor(); 70 sb.append(": ").append(coor.lat()).append(", ").append(coor.lon()); 71 if (p instanceof Node) { 72 final LatLon latLon = ((Node) p).getCoor(); 73 if (latLon != null) { 74 sb.append(": ").append(latLon.lat()).append(", ").append(latLon.lon()); 75 } 71 76 } 72 77 appendDisplayName(p); … … 79 84 80 85 @Override 81 public void visit(Changeset cs) { 82 } 83 84 @Override 85 public void visitKeyValue(AbstractPrimitive primitive, String key, String value) { 86 public void visitKeyValue(Tagged primitive, String key, String value) { 86 87 if (key.contains("#") || key.contains("=")) { 87 88 throw new UnsupportedOperationException("# and = are not supported in keys");
Note:
See TracChangeset
for help on using the changeset viewer.