---
title: 'Thema der Woche: Programmieren mit einem bisschen Geo'
url: 'https://www.tutego.de/blog/javainsel/2009/09/thema-der-woche-programmieren-mit-einem-bisschen-geo'
markdown: 'https://www.tutego.de/blog/javainsel/2009/09/thema-der-woche-programmieren-mit-einem-bisschen-geo.md'
date: '2009-09-02'
description: 'Schreibe eine Klasse Location, die longitude und latitude speichert. Die Attribute sind vom Type double. Gib Setter/Getter an und einen Standard- und parametrisieren Konstruktor. Die Klasse Location soll die Abstands-Utility-Funktionen aus bekommen. Die Klasse Locations soll beliebig viele Locatio…'
taxonomy:
  category:
    - 'Die wöchentliche Dosis Java'
---

# Thema der Woche: Programmieren mit einem bisschen Geo

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Thema der Woche: Programmieren mit einem bisschen Geo

02.09.2009 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Schreibe eine Klasse Location, die longitude und latitude speichert. Die Attribute sind vom Type double. Gib Setter/Getter an und einen Standard- und parametrisieren Konstruktor. Die Klasse Location soll die Abstands-Utility-Funktionen aus bekommen.

Die Klasse Locations soll beliebig viele Location-Objekte speichern können. Dazu ist eine `addLocation()`-Methode nötig, die einen Ort als `String` mit einer Location annimmt und in eine intern Datenstruktur übernimmt. `addLocation()` soll überladen sein, dass man einmal den Ort über ein Location-Objekt bestimmt und einmal über Longitude und Latitude. Eine `toString()`-Methode soll angeben, wie viele Orte enthalten sind. Eine Methode Location `findLocation(String location)` soll die Location für einen Ort zurückgeben. Schreibe eine Methode `List` `within(Location loc, double radius)` Methode, die alle Orte liefert, die nicht weiter als radius von dem Ort entfernt sind. Nutzt die passende statische Funktionen aus Location für den Abstand! Nimm eine überladene Methode `within()` hinzu, die eine maximale Anzahl Elemente in der Rückgabeliste bestimmt.

Schreibe eine Klasse LocationApplication mit einem `main()`. Füge einige Location-Objekte ein und teste die Bereichsabfrage.

Eine Klasse LocationRepository soll zwei statische Methoden enthalten: Locations `loadLocations()` und void `saveLocations(Locations locations)`. Die Methoden sollen Locations aus einer Text-Datei lesen und schreiben können. Nutze dazu beliebige Geokoordinaten. Das Dateiformat kann frei bestimmt werden.

Passe die Methode `within()` an, so dass die Liste sortiert ist nach dem Abstand zum Anfrageort. Schreibe dazu einen DistanceComparator und nutze die `Collections.sort()`-Methode.

Modelliere mit NetBeans eine grafische Oberfläche, mit zwei Reitern (JTabbedPane). In dem ersten Reiter soll man drei Textboxen haben für Ort, Longitude, Latitude und einen „Hinzufügen“ Button. Damit sollen neue Orte dem Locations hinzugefügt werden. Auf dem zweiten Reiter soll der Anwender Abfragen vornehmen können. Eine Eingabezeile für ein Ort (oder Longitude, Latitude) und Radius soll zu max. 10 Ergebnissen führen.

Installiere Google Earth. Bei einer Bereichsabfrage erzeugte eine KML-Datei mit allen Ergebnissen. Diese Datei soll beim Start von Google Eath als Startparameter mitgegeben werden. Externe Programme startet man mit dem ProcessBuilder. Die Insel gibt ein Beispiel für diese Klasse. Überlegen, wie am einfachsten und effektivsten XML geschrieben werden kann.

Kategorien: [Die wöchentliche Dosis Java](https://www.tutego.de/blog/javainsel/category/die-woechentliche-dosis-java/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Latitude/Longitude distance in Java](https://www.tutego.de/blog/javainsel/2009/09/latitudelongitude-distance-in-java.md)
- Next: [Update von Findbugs auf 1.3.9](https://www.tutego.de/blog/javainsel/2009/09/update-von-findbugs-auf-1-3-9.md)
