GeoJSON erzeugen mit Java

Bei der Webentwicklung hat sich für den Austausch von Daten zwischen Server und Client das JSON-Format bewährt. Es ist gegenüber XML kompakter, lässt sich trotzdem einfach lesen und wird von JavaScript direkt in verwendbare Objekte umgewandelt. Eine spezielle JSON-Ausprägung für geografische Daten bildet das GeoJSON-Format. Dieses Format wird auch von OpenLayers unterstützt, sodass man keinen umfangreichen JavaScript-Umwandlungscode schreiben muss. Der folgende GeoJSON-Code enthält die Daten mit Geo-Koordinaten für drei Plätze in meiner Heimat:

{ "type": "FeatureCollection", "features": [
{ "type": "Feature", "id": 1, "properties": { "name": "", "image": "playground.png"} , "geometry": { "type": "Point", "coordinates": [8.5864, 52.8988] } },
{ "type": "Feature", "id": 2, "properties": { "name": "Balkan-Restaurant", "image": "restaurant.png"} , "geometry": { "type": "Point", "coordinates": [8.5992, 52.9106] } },
{ "type": "Feature", "id": 3, "properties": { "name": "carpe diem", "image": "hairdresser.png"} , "geometry": { "type": "Point", "coordinates": [8.5873, 52.9079] } }
] }

Wie wird jetzt dieser GeoJSON-Code serverseitig generiert? Da GeoJSON auch normales JSON ist, können wir es genauso generieren, wie wir JSON generieren würden. Manche Sprachen unterstützen die Transformation zwischen Objekten und JSON direkt:

  • JavaScript: JSON.stringify($object) und JSON.parse($string)
  • PHP: json_encode($object) und json_decode($string)

In Java müssen wir selber Code dafür schreiben oder eine entsprechende Bibliothek nutzen. Zum Glück gibt es allerhand Java-Bibliotheken für JSON. Mit den Bibliotheken org.json, json-simple und Jackson habe ich ausprobiert, wie leicht das Erzeugen von JSON mit solchen Bibliotheken von der Hand geht. Das ist nur eine kleine Auswahl von den über 20 auf json.org aufgelisteten Bibliotheken.

Weiterlesen

Advertisements

„Nette Toilette Navigator“ bei Apps4Bremen und Apps4Deutschland eingereicht

Als ich von den Wettbewerben Apps4Bremen und Apps4Deutschland hörte, war mir klar, an den Wettbewerben werde ich teilnehmen. Gestern war bei den beiden Wettbewerben Einsendeschluss. Apps4Deutschland beschreibt den Wettbewerb folgendermaßen:

Behörden in Deutschland erheben, speichern und verarbeiten viele interessante Daten. […] Mit dem Wettbewerb „Apps für Deutschland“ laden wir Designer, Entwickler, Journalisten, Forscher und die breite Öffentlichkeit ein, Anwendungen zu schaffen, um diese Daten nutzbar zu machen.

Wenn man den Entschluss zur Teilnahme schon mal getroffen hat, stellt sich natürlich die Frage, welche Daten soll ich nutzen und was kann ich damit machen? Tolle Anregungen bieten dabei die Beispiele der Webseite http://opendata-showroom.org/.
Weiterlesen

Starten von Android-Apps mit Intents

In diesem Jahr finden zum ersten Mal die Wettbewerbe Apps4Bremen und dessen großer Bruder Apps4Deutschland statt, die unter anderem Entwickler dazu aufrufen, auf Basis von öffentlichen Daten funktionsfähige Visualisierungen oder Web- und Handy-Anwendungen (Apps) zu entwickeln. Ich habe mir vorgenommen, mit einer Handy-App für Android-Systeme an dem Wettbewerb teilzunehmen.

Das Auswerten und Anzeigen von Daten innerhalb einer Handy-Anwendung kann ja alleine schon hilfreich sein. Echte Praxistauglichkeit beweist eine App jedoch damit, dass sie sich in das Handy-Benutzungskonzept integriert. So können beispielsweise aus einer Handy-App die Funktionen anderer Apps aufgerufen und genutzt werden. Das bietet sowohl für den Entwickler als auch für den Anwender Vorteile:

  • Entwickler müssen keine Zeit in die Entwicklung von Funkionen investieren, die andere Programme bereits bieten
  • Anwender werden für einen Einsatzzweck stets das gleiche bekannte Programm nutzen

In diesem Artikel stelle ich einige Code-Beispiele vor, mit welchen Aufrufen sich andere Android-Apps starten lassen. Die kleine Beispielanwendung ist bei Github verfügbar. Folgende Funktionen/Anwendungen werden vorgestellt (der Unterschied zwischen den Aufrufen besteht lediglich aus einer Zeile Programmcode): Telefonanruf starten, SMS verschicken, Webseite öffnen, Bild aufnehmen, Kontakte öffnen, Karte anzeigen und Navigation starten

Weiterlesen