Hallo!!
ich habe früher meine eigene, gepatchte Version von JOSM verwendet, wo beim Kopieren eines way nur die ID, ohne ein vorangehängtes "way " in die Zwischenablage eingefügt wurde (siehe auch https://josm.openstreetmap.de/ticket/4644 ). Nur bei Relationen wurde ein “r” vorangehängt.
Ich brauche das, weil ich OSM-Relationen direkt in Calc-Tabellen kopiere und es mir irgendwann lästig wurde jedesmal "way " und "relation " löschen zu müssen.
Sind das die entscheidenden Stellen im Source Code? Ich sehe nur nicht, wie hier ein String zusammengesetzt wird:
CopyAction.java
/**
* Copies the given primitive ids to the clipboard. The output by this function
* looks similar to: node 1089302677,node 1089303458,way 93793372
* @param source The OSM data layer source
* @param primitives The OSM primitives to copy
*/
public static void copy(OsmDataLayer source, Collection<OsmPrimitive> primitives) {
// copy ids to the clipboard
ClipboardUtils.copy(new PrimitiveTransferable(PrimitiveTransferData.getDataWithReferences(primitives), source));
}
PrimitiveTransferData.java
private static final class GetReferences implements ReferenceGetter {
@Override
public Collection<? extends OsmPrimitive> getReferredPrimitives(OsmPrimitive primitive) {
if (primitive instanceof Way) {
return ((Way) primitive).getNodes();
} else if (primitive instanceof Relation) {
return ((Relation) primitive).getMemberPrimitivesList();
} else {
return Collections.emptyList();
}
}
}
Kennst sich jemand damit aus?