{"id":396,"date":"2009-09-02T14:15:00","date_gmt":"2009-09-02T14:15:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=396"},"modified":"2010-04-26T17:04:00","modified_gmt":"2010-04-26T15:04:00","slug":"thema-der-woche-programmieren-mit-einem-bisschen-geo","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2009\/09\/thema-der-woche-programmieren-mit-einem-bisschen-geo\/","title":{"rendered":"Thema der Woche: Programmieren mit einem bisschen Geo"},"content":{"rendered":"<p>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 <a href=\"http:\/\/www.tutego.de\/blog\/javainsel\/2009\/09\/latitudelongitude-distance-in-java\/\">http:\/\/www.tutego.de\/blog\/javainsel\/2009\/09\/latitudelongitude-distance-in-java\/<\/a> bekommen.<\/p>\n<p>Die Klasse Locations soll beliebig viele Location-Objekte speichern k\u00f6nnen. Dazu ist eine addLocation()-Methode n\u00f6tig, die einen Ort als String mit einer Location annimmt und in eine intern Datenstruktur \u00fcbernimmt. addLocation() soll \u00fcberladen sein, dass man einmal den Ort \u00fcber ein Location-Objekt bestimmt und einmal \u00fcber Longitude und Latitude. Eine toString()-Methode soll angeben, wie viele Orte enthalten sind. Eine Methode Location findLocation(String location) soll die Location f\u00fcr einen Ort zur\u00fcckgeben. 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\u00fcr den Abstand! Nimm eine \u00fcberladene Methode within() hinzu, die eine maximale Anzahl Elemente in der R\u00fcckgabeliste bestimmt.<\/p>\n<p>Schreibe eine Klasse LocationApplication mit einem main(). F\u00fcge einige Location-Objekte ein und teste die Bereichsabfrage.<\/p>\n<p>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\u00f6nnen. Nutze dazu beliebige Geokoordinaten. Das Dateiformat kann frei bestimmt werden.<\/p>\n<p>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.<\/p>\n<p>Modelliere mit NetBeans eine grafische Oberfl\u00e4che, mit zwei Reitern (JTabbedPane). In dem ersten Reiter soll man drei Textboxen haben f\u00fcr Ort, Longitude, Latitude und einen \u201eHinzuf\u00fcgen\u201c Button. Damit sollen neue Orte dem Locations hinzugef\u00fcgt werden. Auf dem zweiten Reiter soll der Anwender Abfragen vornehmen k\u00f6nnen. Eine Eingabezeile f\u00fcr ein Ort (oder Longitude, Latitude) und Radius soll zu max. 10 Ergebnissen f\u00fchren.<\/p>\n<p>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\u00fcr diese Klasse. \u00dcberlegen, wie am einfachsten und effektivsten XML geschrieben werden kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 http:\/\/www.tutego.de\/blog\/javainsel\/2009\/09\/latitudelongitude-distance-in-java\/ bekommen. Die Klasse Locations soll beliebig viele Location-Objekte speichern k\u00f6nnen. Dazu ist eine addLocation()-Methode n\u00f6tig, die einen Ort als String mit einer Location [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[13],"tags":[],"class_list":["post-396","post","type-post","status-publish","format-standard","hentry","category-die-wochentliche-dosis-java"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=396"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/396\/revisions"}],"predecessor-version":[{"id":626,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/396\/revisions\/626"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}