Adresse anhand einer Koordinate ermitteln

Im Umfeld von OpenStreetMap existieren eine Reihe von Diensten und APIs. Einer dieser Dienste ist Nominatim. Dabei handelt es sich um einen Geocoding-Dienst auf Basis der OpenStreetMap-Daten. Mithilfe der API kann anhand einer Koordinate in Form von Latitude und Longitude, eine Adresse ermittelt werden. Ein Beispielaufruf könnte wie folgt aussehen:

GET https://nominatim.openstreetmap.org/reverse?lat=53.49567958129127&lon=13.302898406982424&format=json

Gewöhnungsbedürftig an diesem Aufruf ist der Parameter format, über welchen das Format des Response definiert wird. Im Sinne einer sinnvollen REST-API, hätte dies besser über den Header-Parameter Accept gelöst werden sollen. Als Ergebnis erhält der Response die ermittelte Adresse:

{
    "place_id": 239463758,
    "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
    "osm_type": "way",
    "osm_id": 626862936,
    "lat": "53.4957878878448",
    "lon": "13.3026220240811",
    "display_name": "Weinbergsweg, Burg Stargard, Stargarder Land, Mecklenburgische Seenplatte, Mecklenburg-Vorpommern, 17094, Deutschland",
    "address": {
        "road": "Weinbergsweg",
        "town": "Burg Stargard",
        "county": "Stargarder Land",
        "state": "Mecklenburg-Vorpommern",
        "postcode": "17094",
        "country": "Deutschland",
        "country_code": "de"
    },
    "boundingbox": [
        "53.4949976",
        "53.4960744",
        "13.3023076",
        "13.3027343"
    ]
}

Neben der Geocoding-Funktionalität enthält der Dienst eine Reihe weiterer Funktionen, welche ihn zu einer Art Suchmaschine für OpenStreetMap-Daten machen. Die offizielle Projektseite des Dienstes ist unter nominatim.org zu finden. Der Quelltext des Dienstes ist auf GitHub zu finden. Das Projekt ist unter der GPL2 lizenziert und damit freie Software.

JavaScript-Animationen in 140 Zeichen

Damals, als die Welt noch in Ordnung war, erlaubte Twitter 140 Zeichen pro Tweet. Diese Grenze haben die Menschen hinter dem Projekt Dwitter genommen und in eine Herausforderung umgewandelt. Bei Dwitter geht es darum in maximal 140 Zeichen eine JavaScript-Animation zu erstellen. Die Ergebnisse können sich sehen lassen; mittlerweile befinden sich etliche solcher Animationen auf der Seite und zeigen was in 140 Zeichen alles möglich ist.

In 140 Zeichen zu einer JavaScript-Animation

Zu finden ist das Projekt unter dwitter.net. Die Webseite, ein in Python geschriebenes Projekt, ist freie Software und unter Apache License in der Version 2 lizenziert. Der Quelltext kann über GitHub bezogen werden.

Ähnliche Autoren finden

Wer gerne liest, hat meist bestimmte Lieblingsautoren. Da wäre es natürlich interessant zu erfahren, welche anderen Autoren dem Lieblingsautor ähneln. Schließlich ist der Lesestoff des Lieblingsautors irgendwann aufgebraucht.

Was lesen die Leser von Stanislav Lem?

Die Webseite Literature-Map, welche unter literature-map.com zu finden ist, bietet eine solche Funktionalität. Nach der Eingabe eines Autors, werden ähnliche Autoren in einer 2D-Karte dargestellt. Um so näher andere Autoren dem Autor in der Mitte sind, desto ähnlicher sind sie. Die Seite basiert dabei auf Gnooks, welches ebenfalls Empfehlungen für Autoren erstellt.

Wortwolken generieren

Wortwolken sind ein beliebtes Mittel um Informationen zu visualisieren. Allerdings möchten die wenigsten eine solche Wolke von Hand erstellen. Stattdessen werden meist Generatoren dafür genutzt. Mit dem Dienst Wortwolken.com, welcher einen solchen Generator liefern, können Wortwolken unkompliziert erstellt werden.

Eine mit dem Dienst erzeugte Wortwolke

Der Dienst ermöglicht nicht nur die Generierung normaler Wortwolken, sondern liefert eine Reihe von Optionen. So kann das Aussehen der Wortwolke mithilfe dieser Einstellungen beeinflusst werden. Von der Schriftart, über die Form der Wortwolke und die Abstände kann die Wolke fein konfiguriert werden. Der Text kann direkt auf der Seite eingegeben oder importiert werden. Ist die Wortwolke erzeugt, so kann diese in der Größe der Wahl exportiert werden. Für den Export stehen unterschiedlichste Dateiformate wie PNG, JPG, PDF und SVG zur Verfügung.

Daten unter Java in ein Byte-Array umwandeln

Für ein Projekt wollte ich eine Liste von long-Werten unter Java in ein einzelnes Byte-Array umwandeln. Dafür kann unter Java die Klasse ByteBuffer genutzt werden. In diesem Beispiel wird eine Liste namens dataStream definiert:

List dataStream = new ArrayList<>();

In dieser Liste befinden sich eine unbestimmte Anzahl von Werten. Mit der Klasse ByteBuffer kann diese Liste bzw. die Werte in der Liste in ein Byte-Array überführt werden:

ByteBuffer byteBuffer = ByteBuffer.allocate(dataStream.size() * 8);

for(long value: dataStream) {
	byteBuffer.putLong(value);
}

byte[] array = byteBuffer.array();

Im ersten Schritt wird der ByteBuffer mit einer Kapazität angelegt, welcher der Größe der long-Werte in Byte entspricht. Anschließend werden die long-Werte in den ByteBuffer geschrieben. Ist dies geschehen kann ein Byte-Array aus dem ByteBuffer erstellt werden. Damit ist die Umwandlung abgeschlossen.