Enumerationen unter Java mit Eigenschaften ausstatten

Im Gegensatz zu vielen anderen Programmiersprachen sind Enumerationen unter Java ein wenig anders gestrickt. Wird eine Enumerationen dort kompiliert entsteht als Ergebnis eine Klasse. Dieser Umstand kann für interessante Dinge genutzt werden. Während in C# der Enum:

public enum Unit {
    PASCAL,
    PSI
}

eine reine Enumeration, mit zwei Werten, darstellt, kann die Enumeration unter Java mit zusätzlicher Funktionalität ausgestattet werden:

public enum Unit {

    PASCAL("Pascal", 1),
    PSI("Pound-force per square inch", 6.895);

    Unit(String name, double conversionFactor) {
        this.name = name;
        this.conversionFactor = conversionFactor;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getConversionFactor() {
        return conversionFactor;
    }

    public void setConversionFactor(double conversionFactor) {
        this.conversionFactor = conversionFactor;
    }

    private String name;
    private double conversionFactor;
}

In diesem Fall erhält die Enumeration zwei zusätzliche Eigenschaften, einen Namen und einen Faktor zur Umrechnung in Pascal. Bei der Definition der einzelnen Werte der Enumeration werden diese zusätzlichen Eigenschaften über den Konstruktor übergeben. In der Nutzung sieht das Ganze dann wie folgt aus:

Unit unit = Unit.PSI;

System.out.println(unit.getName());
System.out.println("Conversion factor to Pascal: " + unit.getConversionFactor());

Mit dieser Herangehensweise lassen sich Enumerationen unter Java einfach mit dazugehörigen Metadaten bzw. zusätzlichen Informationen anreichern.

OpenStreetMap Karten drucken

Bei der freien OpenStreetMap-Karte handelt es sich in erster Linie um einen Online-Dienst. Allerdings hat Papier im Kartenbereich noch nicht ausgedient und so gibt es immer Anwendungsfälle für eine gedruckte Karte.

Eine druckbare Karte wird erzeugt

Eine druckbare Karte wird erzeugt

Möchte man eine solche gedruckte Karte erzeugen, so kann man dies mit dem Dienst MapOSMatic bewerkstelligen. Bei MapOSMatic wählt man im ersten Schritt den gewünschten Bereich aus und arbeitet sich anschließend durch die gewünschten Darstellungsoptionen. Im letzten Schritt wird dann die Karte gerendert und in unterschiedlichen Formaten (PDF, SVGZ, PNG) zum Download angeboten. Weitere Dienste zum Drucken von OpenStreetMap-Karten, mit teilweise anderen Herangehensweisen, sind im OpenStreet Wiki zu finden.

Druckbare Lineale

Wer kennt das nicht, man will etwas ausmessen und hat natürlich nichts im Haus. Alle Maßbänder, Lineale und Gliedermaßstäbe (neudeutsch auch Zollstock genannt) sind wie vom Erdboden verschluckt. Glücklicherweise gibt es aber die Seite http://www.vendian.org/mncharity/dir3/paper_rulers/ auf welcher man sich Lineale zum Ausdrucken herunterladen kann. Dabei sollte man natürlich darauf achten, das diese beim Druck nicht irgendwie skaliert werden, sonst stimmt das ganze natürlich nicht. Am besten nachmessen ;)